首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

引用成员变量大小疑点

2013-02-19 
引用成员变量大小问题class A{public:char ichar& bA():b(i){i99}}这样写,b就是i的引用。如果两个变量

引用成员变量大小问题

class A
{
public:
char i;
char& b;
A():b(i)
{
i=99;
}
};

这样写,b就是i的引用。如果两个变量都是int,则
sizeof(A)的值是8,还可以理解。但为什么两个都是char的时候,sizeof(A)还是8呢?
相对的,试过了
struct B
{
char i;
};
没问题
[解决办法]
引用总是占4字节
[解决办法]
引用:
引用:引用:应用的本质,就是指针。
char& b;占用的内存大小,和char* b一样。对于b来说,就是一个指针,指针大小就是int大小,所以sizeof(A)为8
    char i;
    char& b;
可以看成
    char i;
   ……


不对,引用类型按照int类型处理了,所以b占用4个字节,然后是结构体对齐,由于b大小是4,i大小是1,结构体对齐按照4字节对齐,所以A大小是两个int大小,即8..

热点排行