A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

普通类型在内存中存储是按最大的内存地址去存储值 ,而struct中的类型是按顺序给内存地址赋值,是有这个区别吗?

int a =1; 模拟地址:0xfac8,0xfac7,0xfac6,0xfac5;  int b=5;   模拟地址:0xfac4,0xfac3,0xfac2,0xfac1.

struct Person
{
     int a;  模拟地址:0xfac0,0xfac1,0xfac2,0xfac3;
     int b;  模拟地址:0xfac4,0xfac5,0xfac6,0xfac7.
}

是这个意思吗?

8 个回复

倒序浏览
一个结构体中的一个成员变量你给出了四个模拟地址怎么解。。。。。
回复 使用道具 举报
这么看先定义的在低地址,跟数组一样.

QQ20150515-1.png (20 KB, 下载次数: 13)

QQ20150515-1.png
回复 使用道具 举报
  张恒宇 发表于 2015-5-15 22:23
一个结构体中的一个成员变量你给出了四个模拟地址怎么解。。。。。

一个int不是占4个字节吗,那不是模拟了下每个字节的地址吗...
回复 使用道具 举报
是自上往下分的
回复 使用道具 举报

好的,谢谢
回复 使用道具 举报
丶浩浩丶 发表于 2015-5-15 22:31
这么看先定义的在低地址,跟数组一样.

好的,谢谢
回复 使用道具 举报
注意结构体存在对齐方式,不过你的两个类型一直刚好对齐,所以他会按照顺序的方式存储
回复 使用道具 举报
chensc 金牌黑马 2015-5-20 19:09:55
9#
学习学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马