赋值表达式类型变化的问题
#include<iostream>using namespace std;
int main()
#include<iostream>
using namespace std;
{
int a=3,length;
double b=3;
length=sizeof(a);
cout<<"变化前a的存储大小是:"<<length<<endl;
[it] b=a;[/it]
length=sizeof(a);
cout<<"变化后a的存储大小是:"<<length<<endl;
system("pause");
}
vc2005调试输出结果
变化前a的存储大小是:4
变化后a的存储大小是:4
个人认为,变化后的存储大小是8.[bo]参考人邮版C++第34页“赋值表达式得类型由赋值表达式左值的类型决定,右值表达式要转换为左值表达式。”[/bo]当b=a时a的类型由int变为double,所以我认为变化后a的存储大小是8