C語言中sizeof和strlen的區別與聯絡

2021-07-05 04:26:03 字數 869 閱讀 1953

在學習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...