据我所知,字符常量,即“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。但是,当您尝试分配它时,您通常得到的是 const char*
并且可能有不同的大小。
关于c - 为什么 sizeof() 运算符在 C 中为 'a' 和 "a"给出不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52667106/