在C 中使用sizeof

2021-07-10 18:22:33 字數 1071 閱讀 4402

在c++中使用sizeof

c++類中有static靜態變數,virtual虛函式,還有繼承、派生等。sizeof是c語言的一種單目操作符,如c語言的其他操作符++、--等。它並不是函式。sizeof操作符以位元組形式給出了其運算元的儲存大小。sizeof使用形式有三種:sizeof(var_name)或sizeof var_name或sizeof(var_type)。

針對c++特有,並且針對的是32位機來看一下。

1.(列子中忽略構造及析構函式)

classa

};sizeof(a)= 1;

肯定不是零。如果是零的話,宣告乙個class a a[10]

物件陣列,而每乙個物件占用的空間是零,這時就沒辦法區分a[0],a[1]…了。

因為a是空類,佔位元組為1是為了區分兩個不同的物件,也可以看做是佔位符,該位元組的位址也就是物件的位址。但是這裡的

1也不是絕對的,只是編譯器這樣設定而已。

2.

classb

staticint i;

};sizeof(b) = 1;

因為static變數為類中共享,在靜態區分配空間,在編譯時就分配了空間,不佔類記憶體。

3.

classc

};sizeof(c)= 4;

b類中有虛函式,相應的會有虛表指標存在,佔4個位元組,恰好是乙個指標的空間。如果有多個virtual函式或有多個類繼承了c類,虛函式也只佔4個位元組,如4

4.

classd : public c

virtualvoid b(){}

};sizeof(d)= 4;

在C 中使用Queue

介紹 queue類執行將放在在queue中的物件採用先進先出的資料結構。物件從一端插入到佇列中從另一端移除。物件的順序程序使用queue queue介面 queue類實現了三個主要集合介面 icollection ienumerable和icloneable。queue的重要方法 queue類常用的...

在 C 中使用畫筆

出處 在 c 中使用畫筆 public class rectangle shape protected point m start protected point m end public rectangle point start,point end,color fgcolor m start s...

在 C 中使用 Python script

想要在c 中嵌入script 除了自己寫指令碼引擎外,lua,python 都可以在c 中使用,另外 monobind,angelscript library 都是一些c script library,可以嵌入到c 中使用 今天在c 中試著嵌入 python 示例 在 python 2.5.2 de...