細說c語言中的sizeof運算子

2021-05-28 03:24:44 字數 1106 閱讀 1065

細說c語言sizeof運算子

-於哈爾濱的乙個地下室旅店,2011-9-11下午

所有開始奔波找工作的畢業生們,加油。

sizeof即不是巨集定義,也不是函式,那麼好吧,他是什麼?答曰」運算子「。

在設計計算物件大小的**中,推薦使用sizeof去去得物件(基礎型別,struct,union等)的大小。

char* ss = "0123456789";

sizeof(ss) 結果 4 ===》ss是指向字串常量的字元指標

sizeof(*ss) 結果 1 ===》*ss是第乙個字元

char ss = "0123456789";

sizeof(ss) 結果 11 ===》ss是陣列,計算到\0位置,因此是10+1

sizeof(*ss) 結果 1 ===》*ss是第乙個字元

char ss[100] = "0123456789";

sizeof(ss) 結果是100 ===》ss表示在記憶體中的大小 100×1

strlen(ss) 結果是10 ===》strlen是個函式內部實現是用乙個迴圈計算到\0為止之前

int ss[100] = "0123456789";

sizeof(ss) 結果 400 ===》ss表示再記憶體中的大小 100×4

strlen(ss) 錯誤 ===》strlen的引數只能是char* 且必須是以''\0''結尾的

char q="abc";

char p="a\n";

sizeof(q),sizeof(p),strlen(q),strlen(p);

結果是 4 3 3 2

class x

;x x;

cout<

如果面試官突然想要你自己寫乙個sizeof函式的話,如何實現?這裡是乙個簡單版本。

#include #define my_sizeof(l_value) ( \

(char *)(&l_value + 1) - (char *)&l_value \

)#include #include int main(void)

細說c語言中的sizeof運算子

細說c語言sizeof運算子 於哈爾濱的乙個地下室旅店,2011 9 11下午 所有開始奔波找工作的畢業生們,加油。sizeof即不是巨集定義,也不是函式,那麼好吧,他是什麼?答曰 運算子 在設計計算物件大小的 中,推薦使用sizeof去去得物件 基礎型別,struct,union等 的大小。cha...

c語言中的sizeof運算子

sizeof運算子在編譯期間執行 除非運算元是乙個可變長度陣列 所以不會導致執行時開銷 sizeof運算元是乙個陣列名時返回的是該陣列所佔位元組總個數,而非陣列元素。sizeof運算子求陣列長度 int a 5 sizeof a sizeof a 0 sizeof運算子的運算元只有是乙個真實的陣列名...

c語言中的sizeof

一 sizeof的概念 sizeof是c語言的一種單目操作符,如c語言的其他操作符 等。它並不是函式。sizeof操作符以位元組形式給出了其運算元的儲存大小。運算元可以是乙個表示式或括在括號內的型別名。運算元的儲存大小由運算元的型別決定。二 sizeof的使用方法 1 用於資料型別 sizeof使用...