在學習c語言的時候發現經常將sizeof和strlen弄混淆,今天有遇到這個問題,所以查了一些資料,將他們總結在下面,雖然不是很全,但已經可以通過他們之間的比較來區開分了
strlen:一般用來統計字串中字元的個數
sizeof:一般統計物件所佔的單元(位元組)的個數,一般來說,般以8位二進位製作為乙個儲存單元,所以位元組數一般等於儲存單元的個數。
sizeof與strlen比較
比較專案
sizeof
strlen
返回值整數
整數引數
型別、陣列、指標『函式
陣列是否包含「\0」
包含不包含(以「\0結束」)
本質運算子
函式計算時間
編譯執行
一般用途
統計儲存單元個數
統計字串中字元的個數,包括空格
sizeof用法注意:1、用於測定型別所佔儲存單元時,型別必須用sizeof(型別)
2、用於陣列時,表示陣列所佔的儲存空間的大小,可以不用(),即:sizeof(name) = sizeof name,name為陣列
#include #include #define praise "what a super marvelous name!"
int main(void)
上面為c primer plus上的一段示例**可以比較出他們的不同之處
int sum(int ar, int n)
{ int i;
int total = 0;
for(i=0;i
如以上的sum函式,ar是乙個指向陣列的首元素的指標,所以該函式輸出的結果為4。
C語言中的sizeof和strlen
1 sizeof是算符,strlen是函式 2 sizeof可以用型別做引數,strlen只能用char 做引數,且必須是以 0 結尾的 3 大部分編譯程式,在編譯的時候就把sizeof計算過了,這是型別或是變數的長度這就是sizeof x 可以用來定義陣列維數的原因 4 strlen的結果要在執行...
c語言中的sizeof
一 sizeof的概念 sizeof是c語言的一種單目操作符,如c語言的其他操作符 等。它並不是函式。sizeof操作符以位元組形式給出了其運算元的儲存大小。運算元可以是乙個表示式或括在括號內的型別名。運算元的儲存大小由運算元的型別決定。二 sizeof的使用方法 1 用於資料型別 sizeof使用...
C語言中的sizeof
一 sizeof是編譯器的內建指示符 不是函式 sizeof用於計算型別或變數所佔的記憶體大小 sizeof的值在編譯期就已經確定 sizeof用於型別 sizeof type sizeof用於變數 sizeof var 或 sizeof var int var 0 printf d n sizeo...