C語言的sizeof和strlen

2021-08-26 04:07:41 字數 443 閱讀 7641

strlen是函式,而sizeof是算符。strlen需要進行一次函式呼叫,而對於sizeof而言,因為緩衝區已經用已知字串進行了初始化,起長度是固定的,所以sizeof在編譯時計算緩衝區的長度。

因為sizeof()測試的是陣列的長度。而strlen測試的是字串的長度。在定義陣列時,字串後面還有乙個結束標誌'\0',這個也要算進去!

#include #include main()

**修改下:

#include #include main()

宣告x的時候x裡面儲存的是"string\0",最後的\0是結束符,所以sizeof(x)就是7。

而\0的asccii碼值為0,strlen(x)是計算到\0位置,strlen(x)也就是0了。

注意:=0和='\0'都是結束。而='0'是真正的給對應位置置為字元0

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

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

C語言的sizeof和strlen

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

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 ...