Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29579
  • 博文数量: 4
  • 博客积分: 918
  • 博客等级: 入伍新兵
  • 技术积分: 45
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-03 19:43
文章分类
文章存档

2012年(1)

2011年(3)

最近访客

分类: C/C++

2011-10-25 21:47:12

 
今天在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得到了解释!

 

     

 

阅读(2174) | 评论(0) | 转发(0) |
0

上一篇:谁能救救我的linux?

下一篇:list的建立

给主人留下些什么吧!~~