可能重复:
关于 C 中的指针和字符串的问题
#include<stdio.h>
int main()
{
char *str1="abcd";
char str2[]="abcd";
printf("%d %d %d\n",sizeof(str1),sizeof(str2),sizeof("abcd"));
return 0;
}
为什么这段代码给出相同的答案sizeof(str2)
,sizeof("abcd")
即使str2
理想情况下就像指向字符串的指针一样str1
,所以答案应该是 4 4 5
Ideone 上的代码:http: //ideone.com/za8aV
答案:4 5 5