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 時,如果當前函式最後一行是...