<分区>
对于相同的字符串值,我在 sizeof 上得到了不同的值。
当我在 C 中运行以下代码时:
char str[] = "November";
char *s = "November";
printf(" str[] = %ld\n",sizeof(str));
printf(" *s = %ld\n",sizeof(s));
预期输出:
str[] = 9
*s = 9
实际输出:
str[] = 9
*s = 8
实际发生了什么?
<分区>
对于相同的字符串值,我在 sizeof 上得到了不同的值。
当我在 C 中运行以下代码时:
char str[] = "November";
char *s = "November";
printf(" str[] = %ld\n",sizeof(str));
printf(" *s = %ld\n",sizeof(s));
预期输出:
str[] = 9
*s = 9
实际输出:
str[] = 9
*s = 8
实际发生了什么?
最佳答案
sizeof(str)
是 char
数组 str
的大小,它包含 9 个元素(包括空终止符),因此9 个字节。
sizeof(s)
是指向 char
的指针的大小,在您的系统上是 8 个字节
关于c - 即使两个变量包含相同的字符串,sizeof() 也返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53865008/