据我所知,字符常量viz'a'以ASCII格式存储,在内部将其视为整数,在'a'情况下为97,这就是为什么sizeof('a')执行时返回4的原因但是当我使用sizeof(“ a”)时返回2。我还没有找到任何解释。
我的代码:
#include <stdio.h>
void main()
{
int x,y;
x = sizeof('a');
y = sizeof("a");
printf("%d\n",x);
printf("%d",y);
}
给出输出:
4
2
答案 0 :(得分:4)
'a'
是一个整数。在大多数计算机上,它的大小为4。但是,这也可能是其他事情。 2在更专业的硬件上也很常见。
"a"
是字符串文字。有两个字符:a
和\0
。它们的大小均为1,总大小为2。但是,当您尝试分配大小时,通常会得到const char*
,并且大小可能会有所不同。