结构体中使用引用
struct CB
{
CB():a(c)
{
c = 10;
}
int c;
int& a;
};
int x = sizeof (CB); // x = 8
CB b;
int *p = &(b.a); //*p = 10
int *q = &(b.c); //*q = 10
//p 和 q 等价
printf("\n");
}
问题1:为什么此结构体大小为8,不是说引用不占用内存么,为什么结构体大小不是4
问题2:int *p = &(b.a);这句话为什么是对的,不是说不能定义指向引用的指针么
问题3:为什么p和q值是一样的?
我的想法:若引用变量a是占内存的变量,那么对其取地址当然是可以的,否则肯定是不行的,同时我发现对结构体中的a和c取地址,其地址值是一样的,那么就产了一个问题,结构体中4字节的内存空间哪里去了?