为什么 sizeof 在以下情况下会打印不同的值:
printf("%d",sizeof("ab")); //print 3
char* t="ab";
printf("%d",sizeof(t)); //print 4
在第一种情况下,我有 2 个字符... sizeof
不应该打印 2 吗?因为它们是 2 个字节?
最佳答案
Strings in C are null terminated.
内存中的“ab”看起来像'a' 'b' '\0'
而t
是一个指针,所以size是4。
关于c++ - 字符串 "sizeof"的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5463325/