有关于结构体的一些疑惑

图片说明
对上述图片的驶出有些问题:IDE:vs2015,C++
struct A的大小是40,为何a和b的地址差距为48?
vs2015默认未初始化内存初始化为0xcc,为何a的输出结果是cc而b是0?初始化a[0]而不是a[1]的结果是a输出为0,而b却成cc了……完全搞不懂……求各位大神解答一下,多谢啦

struct A大小是40,但是还有地址对齐等,所以地址差距可能是48

a.a[1] = 0 是对数组的第二个数赋值了 a.a[0] 并没有赋值 然而打印出来的printf(“%x”,a); 打印的数组首地址(可以说是a[0]的地址) 并不是a[1]的地址

至于 差距为什么是48 是因为映射到内存的时候没说一定是连续的 (你再多试几次 可能就是别的地址了),还有可能就是字节对其的问题