strlen和sizeof具體區別如下:
1、strlen為C語言庫函式之一;sizeof為一個運算子,是C語言關鍵字之一。
2、strlen功能為求字串長度, 引數為char *型別。宣告為
int strlen(const char *s);
會計算s開始,一直到字串結束符"\0"所有元素個數,不包括\0。
sizeof運算物件可以是任何變數或型別,計算結果為該變數或型別佔的實際長度(記憶體位元組數)。
3、strlen作為函式,其後引數必須在括號內;
sizeof在計算變數佔位元組數時,可以帶括號也可以不帶,但如果計算資料型別佔位元組數,則必須帶括號。
4、以字串作為引數為例,具體說明二者區別如下:
(1) 定義char s[10] = "abcd";
strlen(s)為字串長度,也就是實際字元數,結果為4.
sizeof(s)為陣列s的大小,值為10.
(2) 定義char *s = "abcd";
strlen(s)和strlen("abcd")相同,都是4。
sizeof(s)為指標佔空間大小,取決於機器字長。32位機下,該值為4.
sizeof("abcd")為字串實際佔記憶體大小,包括"\0", 值為5。
strlen和sizeof具體區別如下:
1、strlen為C語言庫函式之一;sizeof為一個運算子,是C語言關鍵字之一。
2、strlen功能為求字串長度, 引數為char *型別。宣告為
int strlen(const char *s);
會計算s開始,一直到字串結束符"\0"所有元素個數,不包括\0。
sizeof運算物件可以是任何變數或型別,計算結果為該變數或型別佔的實際長度(記憶體位元組數)。
3、strlen作為函式,其後引數必須在括號內;
sizeof在計算變數佔位元組數時,可以帶括號也可以不帶,但如果計算資料型別佔位元組數,則必須帶括號。
4、以字串作為引數為例,具體說明二者區別如下:
(1) 定義char s[10] = "abcd";
strlen(s)為字串長度,也就是實際字元數,結果為4.
sizeof(s)為陣列s的大小,值為10.
(2) 定義char *s = "abcd";
strlen(s)和strlen("abcd")相同,都是4。
sizeof(s)為指標佔空間大小,取決於機器字長。32位機下,該值為4.
sizeof("abcd")為字串實際佔記憶體大小,包括"\0", 值為5。