關於sizeof的筆試面試題具體解釋

2021-09-07 05:05:11 字數 1217 閱讀 4842

注意: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...