在网上看到的代码:
int i=1;
cout<<sizeof(++i)<<endl; //结果为4 int类型4个字节
cout<<i<<endl; //结果为1 在执行了上面的操作后i仍为1 ++i没有执行
改变一下:
int i=1;
cout<<sizeof(i+=1)<<endl;
cout<<i<<endl;
这次结果仍然相同!!
int i=1;
int j=2;
cout<<sizeof(i=j+1)<<endl;
cout<<i<<endl;
结果同上。
int i=1;
double j=2;
cout<<sizeof(j=i+1)<<endl;
cout<<i<<endl;
结果一样。
int i=1;
double j=2;
cout<<sizeof(j=i+1)<<endl; //结果为8 double类型8个字节
cout<<i<<endl; //结果为1
这次记过发生了改变,但是sizeof里面的运算始终没有执行。但是,从该结果看,我们可以得到这样一个结论:
只要sizeof的参数的表达式没有错误,其结果为从左边数第一个变量的类型大小值。