sizeof(char*)几个字节?
今天看了一本书,书上有这么个结构体,
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》
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
