兩個小問題:
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] 各有不同。
他們的本質如下:(標記。後補充!)