關於c 中的sizeof

2021-08-24 21:12:13 字數 623 閱讀 2927

再舉個例子:

#include

<

iostream

>

using namespace

std;

int

main()

為什麼a結果不是2呢?

sizeof本身是c/c++的乙個關鍵字(和int、char一樣)而不是乙個函式,這注定它是在編譯期所執行的,而在編譯期a=b是不會被執行的

同時sizeof的作用是求某個型別所占用記憶體空間的位元組數,也就是應該是sizeof(型別名)。你可能會說了,也可以sizeof

(2)呀,也可以像上面的程式那樣sizeof(a

= b)呀!是的,這是可以的,這是因為在編譯期,編譯器計算出了sizeof後面跟的表示式的型別,然後sizeof計算出該型別所占用記憶體空間的位元組數。

好了,回到我們的主題,sizeof(a

= b)中的a =

b為什麼沒有執行呢?這是因為賦值表示式的型別同其左值的型別,在這裡也就是變數a的型別。因此編譯器根本不會去執行a =

b這個操作,而只是把sizeof(a

= b)看成sizeof(a

),在這裡a又是int型別的,那麼就成了sizeof

(int)了。

關於c 中的sizeof

再舉個例子 include iostream using namespace std int main 為什麼a結果不是2呢?sizeof本身是c c 的乙個關鍵字 和int char一樣 而不是乙個函式,這注定它是在編譯期所執行的,而在編譯期a b是不會被執行的 同時sizeof的作用是求某個型別...

C語言關於sizeof總結

一 sizeof用來計算乙個變數,或者資料型別的長度,以位元組為單位。它是乙個操作符,如同 一樣,單運算元。比如在我的電腦上,sizeof int 4,sizeof long 4。還有一般要求的sizeof char 1。二 sizeof在陣列與指標上的特性 c語言中的指標使其具備了強大的功能,同時...

c 中sizeof的用法

1 作用 sizeof計算資料 包括陣列 變數 型別 結構體等 所佔記憶體空間,用位元組數表示。2 sizeof有三種用法形式,sizeof操作符,對變數或物件可以不加括號,但若是型別,須加括號 如下 1 sizeof object 物件 2 sizeof type name 型別 3 sizeof...