sizeof運算子和strlen函式的區別

2021-06-29 14:55:42 字數 534 閱讀 8539

1、sizeof是運算子,而strlen是函式。

2、sizeof操作符的運算結果為size_t,他在標頭檔案中的typedef為unsigned int。該型別保證能容納所操作物件的最大位元組大小。

3、sizeof可以用型別做引數,而strlen只能用char*做引數,且必須是以『\0』結尾。

4、陣列做sizeof引數不退化,而做strlen就退化成指標。

5、大部分編譯程式在編譯的時候就把sizeof處理過了,這就是sizeof(x)可以用來作為陣列空間大小的原因。

char str[20]=「0123456789」;

a=strlen(str);     // a=10,執行時確定

b=sizeof(str);   //b=20,編譯時確定,計算str陣列的最大空間。

6 、 sizeof後面如果是型別則必須加括號,如果是變數名則可以不用加。

如: char c ;

sizeof c;// c為變數名則不用加括號

7、sizeof運算子不適用於計算物件是動態分配的空間以及外部陣列。

關於C語言sizeof運算子和strlen 函式

c primer plus總結 1.不同點 sizeof運算子是以位元組為單位返回運算子物件的大小 strlen 函式給出字串中的字元長度 2.相同點 sizeof運算子和strlen 函式返回型別可以用 zd轉換 不識別 zd,嘗試換成 u或者 lu sizeof運算子和strlen 函式返回的實...

(24)位運算子 sizeof運算子

位運算子作用於整數型別,並把運算物件看成是二進位制的集合。位運算子提供檢查和設定二進位制位的功能,滿足左結合律。但是位運算關於符號位如何處理沒有明確的規定,改變符號位的值是一種未定義的行為,所以建議僅將位運算子作用於無符號 型。左移運算子 右移運算子 的行為則依賴於其左側運算物件物件的型別 如果該運...

sizeof運算子詳解

1 sizeof應用在結構上的情況 請看下面的結構 struct mystruct 對結構mystruct採用sizeof會出現什麼結果呢?sizeof mystruct 為多少呢?也許你會這樣求 sizeof mystruct sizeof double sizeof char sizeof in...