可能是重复问题:
C语言中指针和数组之间的区别
sizeof运算符输出不同结果
基本上,我做了这个......
char *str1 = "Sanjeev";
char str2[] = "Sanjeev";
printf("%d %d\n",strlen(str1),sizeof(str1));
printf("%d %d\n",strlen(str2),sizeof(str2));
我的输出结果是
7 4
7 8
我无法解释为什么sizeof str1
的结果是4。请解释它们之间的区别。
7 8 / 7 8
;当然,这是一台64位的机器。这可能会让你误解正在发生的事情! - Jonathan Leffler