sizeof运算符的工作在c和c ++中是否不同

Kra*_*mar 9 c c++

我编写了一个小的printf语句,它在C和C++中的工作方式不同:

    int i;
    printf ("%d %d %d %d %d \n", sizeof(i), sizeof('A'), sizeof(sizeof('A')),    sizeof(float), sizeof(3.14));
Run Code Online (Sandbox Code Playgroud)

使用gcc编译器在c中的上述程序的输出是4 4 8 4 8

使用g ++编译器在c ++中上述程序的输出是4 1 8 4 8

我预计c中有4 1 4 4 8.但结果并非如此.

printf sizeof中的第三个参数(sizeof('A'))给出8

任何人都可以给我这个推理

Cha*_*via 14

这与sizeof操作员无关; 相反,C中字符文字的大小不同于C++,因为C中的字符文字是类型int,而在C++中它们是类型char.

请参阅为什么C字符文字整数而不是字符?欲获得更多信息.

  • 不,这是双倍的.3.14f是一个浮点数. (5认同)