細說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使用...