相关疑难解决方法(0)

为什么C字符文字而不是字符?

在C++中sizeof('a') == sizeof(char) == 1.这具有直观意义,因为它'a'是一个字符文字,并且sizeof(char) == 1由标准定义.

然而,在C中sizeof('a') == sizeof(int).也就是说,看起来C字符文字实际上是整数.有谁知道为什么?我可以找到很多关于这个C怪癖的提及,但没有解释为什么它存在.

c c++ sizeof char

101
推荐指数
7
解决办法
2万
查看次数

为什么sizeof('a')在C中是4?

可能重复:
为什么C字符文字的内部而不是字符?

#include<stdio.h>
int main(void)
{
    char b = 'c';
    printf("here size is %zu\n",sizeof('a'));
    printf("here size is %zu",sizeof(b));
}
Run Code Online (Sandbox Code Playgroud)

这里输出(见现场演示在这里.)

here size is 4 
here size is 1
Run Code Online (Sandbox Code Playgroud)

我不明白为什么sizeof('a')是4?

c sizeof char literals

11
推荐指数
2
解决办法
1548
查看次数

标签 统计

c ×2

char ×2

sizeof ×2

c++ ×1

literals ×1