char[] 與char[9]的不同。 sizeof(char*) != sizeof(char)

兩個小問題:

 

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]  各有不同。

 

他們的本質如下:(標記。後補充!)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章