今天在c++吧看见一个吧友提出的关于sizeof的疑惑,他的测试代码经我修改如下:
- #include<iostream>
- using namespace std;
- void main()
- {
- char a,b;
- int i=0;
- cout<<sizeof(a)<<endl;
- cout<<sizeof(a+b)<<endl;
- cout<<sizeof(a)<<endl;
- cout<<sizeof(i++)<<endl;
- cout<<i<<endl;
- }
测试结果为:
1,4,1,4,0;
猜想:第一个结果因为是char行,所以输出1;
第二个结果经过“加”运算,返回类型为int,故为4;
而第三个结果仍然是1,证明第二个输出sizeof实际并没有进行加运算,所以上面的加字打引号;
而第三个结果的输出使得他的第五个结果输出不是1而是0得到了解释!
阅读(2221) | 评论(0) | 转发(0) |