sizeof(char*)几个字节?

  • Post author:
  • Post category:其他


今天看了一本书,书上有这么个结构体,

typedef struct address

{


char* name;                  4

int* id;   //我后加的         4

long int number;            4

char* street;                 4

char* town;                   4

char state[2];               2

long zip;                       4

}address;

问这个结构体占几个字节。

这里有两个问题:

1. 指针类型占几个字节?答:对于32位机器,占4个字节;对于16位机器,占2个字节。

2. 这个结构体占几个字节?答:看起来是26个字节,其实是28个字节。

原因如下:

1          2        3        4

|———|——–|——–|——–|


********* ******** ******** ********

char* name占4个字节

|———|——–|——–|——–|


********* ******** ******** ********

int* id占4个字节

|———|——–|——–|——–|


********* ******** ******** ********

long int number占4个字节

|———|——–|——–|——–|


********* ******** ******** ********

char* street占4个字节

|———|——–|——–|——–|


********* ******** ******** ********

char* town占4个字节

|———|——–|——–|——–|


********* ********

____ _____     char state[2]占2个字节

|———|——–|——–|——–|


********* ******** ******** ********

long zip占4个字节

故共28个字节。

想了解更多,请参看



C++预处理之#progm pack