据我所知,一个字符常量,即“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
'a'
是一个整数。在大多数计算机上它的大小为 4。然而,它也可能是别的东西。2 在更专业的硬件上也很常见。
"a"
是字符串文字。有两个字符:a
和\0
。它们每个的大小为 1,总共大小为 2。但是,当您尝试分配它时,您通常得到的是 aconst char*
并且可能具有不同的大小。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句