1. 程式人生 > >C++ 淺談 strlen 與 sizeof的區別

C++ 淺談 strlen 與 sizeof的區別

數據 數組長度 eof out 其他 使用 c++ 區別 字符串數組

先舉個栗子:

字符串數組跟字符串指針,然後分別使用sizeof跟strlen看輸出結果。

char strA[] = "2017-7-19";

char *strB = "23333";

cout <<sizeof(a)<<ends<<sizeof(b)<<endl;

以上輸出 10 4;

a字符串數組長度為10,因為其包含了結束符‘\0‘;

b字符串指針的長度是4,(32位機子下指針長度都是4,其他類型一致,無論指向多長的字符串)

倘若想測試最後一位是不是,循環到最後一位並且做個判斷是不是‘\0‘即可。

cout <<strlen(a)<<ends<<strlen(b)<<endl; 【註意這裏strlen的參數是char的類型】

以上輸出 9 5;

strlen實際返回的是字符串的長度,即原本字符串數組中保存的數據長度/字符串指針中保存的數據長度。

C++ 淺談 strlen 與 sizeof的區別