C語言 關於sizeof返回值的理解

2021-10-04 08:17:30 字數 734 閱讀 1562

1.運算子 sizeof 的返回值是 unsigned 型別,x 是 int 型別,比較時會將 x 公升級為 unsigned 型別,而 -1 變為 unsigned 型別是乙個很大的整數。

2、sizeof操作符能夠得到乙個結構的整體長度,包括因邊界對齊而跳過的那些位元組。

3、sizeof 和 strlen 的區別:

sizeof 是操作符,而 strlen 是庫函式,sizeof 的引數可以是資料的型別,也可以是變數,而 strlen 只能以結尾為 \0 的字串作為引數;

編譯器在編譯時就計算出了 sizeof 的結果。而 strlen 函式必須在執行時才能計算出來。並且 sizeof 計算的是資料型別佔記憶體的大小,而 strlen 計算的是字串實際的長度。

重點:

例子:

#define _crt_secure_no_warnings

#include

#include

#include

#include

#pragma warning(disable:6031)

intmain

(void

)

sizeof的返回值

最近在看webkit,在wtf wtf ownptrcommon.h有一段關於sizeof的 template inline void deleteownedptr t ptr 既然webkit這麼寫,那麼肯定合理了,於是查閱資料總結一下,sizeof的返回值 1.正值 常見,2.零值 確實存在0,...

關於C語言函式返回值問題

程式一 int main return 0 int fun void int q str return q 不能正確返回 雖然str是在動態變數區,而該動態變數是區域性的,函式結束時不保留的。程式二 int main char fun void 可以正確返回 但是,字串 hello 不是變數,而是乙...

深入C語言返回值

最近在寫另一篇部落格時,突然發現了乙個問題,感到好奇怪,和學長討論了好久,但是還是沒什麼結果,於是就請教了網上的大神,終於有所收穫,具體問題如下 當乙個函式 非main 函式 沒有給其顯式的 return 時,他的返回值是什麼呢?本來我的猜想是 如果沒有顯式的return 時,如果當前函式最後一行是...