两个小问题:
1, char s[] = "12345"; // sizeof(s) = 6, 因为会自动为末尾加上'/0', 与char* s = "12345"一致
2, char s[5] = "12345" //sizeof(s) = 5
1,char* 是不同于char 的另外一种指针类型。 sizeof(char*) = 4 这是由于用的操作系统是32位的缘故
注意: 在局部变量返回问题上,即
char* foo()
{
char a[] = "12345“;
return a;
}
在main函数里得到 也是乱码,即和char a[5]一样的效果。 可见char* , char[],char[n] 各有不同。
他们的本质如下:(标记。后补充!)