对sizeof的新见解

2268阅读 0评论2011-10-25 limsco
分类:C/C++

 
今天在c++吧看见一个吧友提出的关于sizeof的疑惑,他的测试代码经我修改如下:
  1. #include<iostream>
  2. using namespace std;
  3. void main()
  4. {
  5.    char a,b;
  6.    int i=0;
  7.    cout<<sizeof(a)<<endl;
  8.    cout<<sizeof(a+b)<<endl;
  9.    cout<<sizeof(a)<<endl;
  10.    cout<<sizeof(i++)<<endl;
  11.    cout<<i<<endl;
  12. }

测试结果为:

1,4,1,4,0;

猜想:第一个结果因为是char行,所以输出1;

      第二个结果经过“加”运算,返回类型为int,故为4;

      而第三个结果仍然是1,证明第二个输出sizeof实际并没有进行加运算,所以上面的加字打引号;

      而第三个结果的输出使得他的第五个结果输出不是1而是0得到了解释!

 

     

 

上一篇:谁能救救我的linux?
下一篇:list的建立