sizeof詳解 它到底是什麼

2021-09-10 23:54:28 字數 1260 閱讀 8108

sizeof是乙個操作符,它不是函式,他既是關鍵字,也是運算子。

int a;

sizeof(int);

sizeof(a);

sizeof a;

上述3個sizeof的輸出結果相同。首先它不是函式,函式沒有第三種寫法。

在c99標準中明確提到保留下來的關鍵有32個:

(6.4.1) keyword: one of

auto break case char const continue default do

double else enum extern float for goto if

int long register return short signedsizeofstatic

struct switch typedef union unsigned void volatile while

它也同加減乘除一樣是運算子

sizeof 操作符的作用是返回乙個物件或型別名所佔的記憶體位元組數,返回值的型別為size_t,長度的單位是位元組,在編譯而不是執行時確定。

• 對引用型別做sizeof操作將返回存放此引用型別物件所需的內在空間大小。

• 對指標做sizeof操作將返回存放指標所需的內在大小;注意,如果要獲取該指標所指向物件的大小,則必須對指標進行引用。

因為 sizeof返回整個陣列在記憶體中的儲存長度,所以用 sizeof 陣列的結果除以sizeof 其元素型別的結果,即可求出陣列元素的個數。

int a;

char b[10];

char *p;

printf("%d\n", sizeof(int));

printf("%d\n", sizeof(a));

printf("%d\n", sizeof a );

printf("%d\n", sizeof b);

printf("%d\n", sizeof p);

p = b;

printf("%d\n", sizeof(p));

printf("%d\n", sizeof(*p));

printf("%d\n", sizeof(*b));

system("pause");

結果:

4

4 410 4

4 11

敏捷到底是什麼?

文 ivar jacobson 在支援軟體工程 比如rational統一過程rup 與敏捷陣營 比如scrum或是xp 之間,人們一直存在著衝突。也不難理解,因為這兩種方法間都是在用著彼此並不相容的方式來描述的。其實大可不必,因為他們背後的觀點全然是相輔相成的。關鍵在於該如何用對兩者來說都公平的方式...

我們到底是什麼?

我們到底是什麼?我們是一種生物電流 生物電流有幾種狀態,喜怒哀樂等,可以根據外部環境進行自我切換 該種生物電流附屬在一種器官硬體上面 我們可以從器官硬體上感知一些資訊,產生新的資訊生物電流,新產生的生物電流符合原先的標準 我們可以把資訊電流儲存在器官硬體上,但具體如何儲存等資訊無法被我們感知 我們的...

SDN到底是什麼

sdn到底是什麼?雖然這個概念已經被炒到了,但還沒有人對其給出乙個明確的概念。盛科網路總監張衛峰撰寫了自己關注sdn以來,對其認識的四個階段,最後乙個階段又回到了sdn字面的意思軟體定義網路,每個階段作者的新觀點,也會給我們帶來一些啟發。以下為原文 我對sdn的認識可以分為四個階段,最後乙個階段是在...