sizeof , strlen與字符串


char* ss = "0123456789";

sizeof(ss) 結果 4 ===》ss是指向字符串常量的字符指針
sizeof(*ss) 結果 1 ===》*ss是第一個字符,字符佔1個字節
char ss[] = "0123456789";
sizeof(ss) 結果 11 ===》ss是數組,計算到/0位置,因此是10+1
sizeof(*ss) 結果 1 ===》*ss是第一個字符
char ss[100] = "0123456789";
sizeof(ss) 結果是100 ===》ss表示在內存中的大小 100×1
strlen(ss) 結果是10 ===》strlen是個函數內部實現是用一個循環計算到/0爲止之前
int ss[100] = "0123456789";
sizeof(ss) 結果 400 ===》ss表示再內存中的大小 100×4,32位機種int整形數據佔4個字節
strlen(ss) 錯誤 ===》strlen的參數只能是char* 且必須是以''/0''結尾的
char q[]="abc";
char p[]="a/n";
sizeof(q),sizeof(p),strlen(q),strlen(p);

結果是 4 3 3 2     


ref : here

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