正確使用sizeof和strlen

2021-05-26 22:44:33 字數 806 閱讀 1088

sizeof 是用來計算乙個陣列占用多少空間,如果運算元是乙個指標,則反回的是乙個指標的大小。下面看一些例子:

char ss[10];

sizeof(ss) == 10;表示在記憶體中的大小為 10*1

char ss = "0123456789";

sizeof(ss) == 11; //ss是陣列,計算到\0位置,因此是 10+1

char *ss = "how are you!";

sizeof(ss) == 4; //ss 是指向字串常量的字元指標

sizeof( *ss ) == 1;// *ss 是指標ss指向的第乙個字元

如果這個陣列不是char型的,則sizeof的反回值要根據實際的資料型別而定。例如:

int ss[10];

sizeof(ss) == 40; //在linux下int占用四個位元組,大小為 10*4

下面說strlen: 

strlen

size_t strlen( const char *string );

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

strlen(ss)       錯誤 //strlen的引數只能是char* 且必須是以''\0''結尾的

C 錯誤知識點梳理之sizeof和strlen

sizeof 是以分類的陣列的實際所佔的記憶體空間大小計算長度 strlen計算字串的長度,是以 0 為字串結束標誌。const char str 123456 sizeof str 和strlen str 的結果分別是 第乙個sizeof讀取的是指標的長度,在64位系統為8b 在32位系統為4b ...

sizeof和strlen使用技巧

相同點 sizeof和strlen都可以計算字串的長度 不同點 sizeof 是運算子 strlen 是函式 a.例如,定義如下 char info hello,si mida n 問 給info字串指標用malloc動態分配記憶體空間最好用sizeof還是strlen?答案是最好用strlen。因...

sizeof使用介紹

sizeof是c c 中的乙個操作符 operator 簡單的說其作用就是返回乙個物件或者型別所佔的記憶體位元組數。常用型別的sizeof 也可以對乙個函式呼叫求值,其結果是函式返回型別的大小,函式並不會被呼叫,我們來看乙個完整的例子 char foo int main c99標準規定,函式 不能確...