C語言的strlen和sizeof的區別

2021-09-25 04:51:10 字數 744 閱讀 1170

str1 = ;

str2 =

str3 = "love";

對於第一種以單個字元初方式始化的,結束標誌:最後乙個字元

對於第二種和第三種以字串方式初始化的,為了判斷字串是否結束,編譯器會在最 後面自動加上結束字元 『\0』,所以在記憶體中實際存放情況為:l o v e \0 ,因此結束標誌:』 \0 』

原型

size_t	strlen ( char	const	* str)
使用

printf("%d",strlen(str2));
輸出結果:4

功能是返回乙個變數或者型別的大小(以位元組為單位)

原型

sizeof( type_name ) ; //sizeof(型別);

sizeof objec t; //sizeof物件;

eg.

int i;

sizeof(i); //ok

sizeof i; //ok

sizeof(int); //ok

sizeof int; //error

返回值:size_t

參 數:型別 / 物件

使用

printf("%d",sizeof(str2));
輸出:5

C語言的sizeof和strlen

strlen是函式,而sizeof是算符。strlen需要進行一次函式呼叫,而對於sizeof而言,因為緩衝區已經用已知字串進行了初始化,其長度是固定的,所以sizeof在編譯時計算緩衝區的長度。strlen是遇到0或者 0 都會停止運算的,而sizeof是每個字元都會算的,不會漏掉0 或者 0 因...

C語言的sizeof和strlen

strlen是函式,而sizeof是算符。strlen需要進行一次函式呼叫,而對於sizeof而言,因為緩衝區已經用已知字串進行了初始化,起長度是固定的,所以sizeof在編譯時計算緩衝區的長度。因為sizeof 測試的是陣列的長度。而strlen測試的是字串的長度。在定義陣列時,字串後面還有乙個結...

C語言 sizeof和strlen的計算

sizeof是乙個關鍵字,求字串所佔的位元組數。printf d n sizeof int printf d n sizeof a printf d n sizeof a strlen是乙個函式,求字串的長度,結束符 0之前的字元個數。看一下下面幾組練習 一維陣列 int a printf d n ...