注意:sizeof是編譯期計算出結果的,這一點對後面的理解非常重要
一、關於結構體
先看下**
#include "stdafx.h"
#include using namespace std;
typedef struct
test1;
typedef struct
test2;
typedef struct
test3;
typedef structtest4;
typedef structtest5;
int _tmain(int argc, _tchar* argv)
~emptyclass1(){}
};class emptyclass2
virtual ~emptyclass2(){}
};class hwcbase
virtual ~hwcbase(){}
private:
int base;
};class hwcsubfirst:hwcbase
~hwcsubfirst(){}
private:
int sub;
};class hwcsubsecond:hwcbase
~hwcsubsecond(){}
private:
int sub;
char sub2;
};int _tmain(int argc, _tchar* argv)
{ cout<
執行結果
解釋下:
1、對於乙個空的類。在記憶體中要存在乙個標示來區分,所以即使是空的。也要分配乙個位元組
2、相同是empty的類,可是有乙個虛的析構函式,所以,儲存了乙個指標(vptr)指向虛表。
乙個指標4byte
3、hwcbase類,有乙個int占用4byte,乙個指標(vptr)。所以共占用8byte
3、hwcsubfirst,繼承來乙個int,本身有乙個int。加上乙個vptr指標,共12位元組
4、hwcsubsecond,和hwcsubfirst類似,可是多了乙個char,考慮到記憶體對其。12+4 = 16位元組
關於sizeof的筆試面試題詳解
注意 sizeof是編譯期計算出結果的,這一點對後面的理解很重要 一 關於結構體 先看下 include stdafx.h include using namespace std typedef struct test1 typedef struct test2 typedef struct tes...
C 面試題之sizeof面試題
sizeof面試題1.cpp what is the output of the following code?美國某著名計算機軟硬體公司面試題 include include include using namespace std structa structb int main 解析 ss1是乙...
本處理 具面試題
本處理 具面試題 1 找出ifconfig 卡名 命令結果中本機的ipv4位址 root magedu ifconfig ens33 grep netmask tr s cut d f3 root magedu ifconfig ens33 head n2 tail n1 tr s cut d f3...