C/C++

关于编译器的部分:

malloc 和 sizeof:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int *p;
    p=malloc(sizeof(int));
    *p=2;
    printf("*p= %d ,sizeof('a')=%d
",*p,sizeof('a'));
    return 0;
}

在GCC编译器下:

在C++的编译器下:

提示出错,对于malloc函数的返回值要显示的表明,将语句改为:

p=(int*)malloc(sizeof(int));

然后来看结果:

通过结果,同时可以看到的是:

C++编译器对字符串常量'a'是当作一个char型

C编译器对于字符串常量'a'是当作一个int型

原文地址:https://www.cnblogs.com/yoru/p/4148431.html