C++自增操作符你真的懂?
博客专区 > 龍禳 的博客 > 博客详情
C++自增操作符你真的懂?
龍禳 发表于4年前
C++自增操作符你真的懂?
  • 发表于 4年前
  • 阅读 90
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要:   虽然使用C++已经长达五年之久,但是对于C++的这个++却实在是一知半解。说来惭愧。 相信所有学过C++的人都知道++C于C++在运算符产生的效果上的异同。那么当一个表达式或者一个语句中出现两次同样的++会是什么样的表现呢?   例如int a=2; int b=(a++)*(a++)等于多少呢? 是4还是6还是8?

  虽然使用C++已经长达五年之久,但是对于C++的这个++却实在是一知半解。说来惭愧。 相信所有学过C++的人都知道++C于C++在运算符产生的效果上的异同。那么当一个表达式或者一个语句中出现两次同样的++会是什么样的表现呢?
  例如int a=2; int b=(a++)*(a++)等于多少呢? 是4还是6还是8?


  最简洁快速的办法就是写代码,让编译器告诉我们答案。于是构造了这么一段代码:

int _tmain(int argc, _TCHAR* argv[])
{
    int a,b;

    a = 2; b = 3;
    int a1 = (a++)*(a++);

    a = 2; b = 3;
    int a2 = (++b)*(++b);

    a = 2; b = 3;
    int b1 = a++<<a++;

    a = 2; b = 3;
    int b2 = ++a<<++a;

    a = 2; b = 3;
    int c1 = (a++*b++,a++*b++);

    a = 2; b = 3;
    int c2 = (++a*++b,++a*++b);

    a = 2; b = 3;
    int d1 = (a++,++b)<<(a++,++b);

    a = 2; b = 3;
    int d2 = (a++,b++)<<(++a,++b);

    a = 2; b = 3;
    int d3 = (a++,b++)<<(++b,++a);

    a = 2; b = 3;
    int d4 = (b++,a++)<<(++a,++b);    

    printf("\na1:%d",a1);
    printf("\na2:%d",a2);
    printf("\nb1:%d",b1);
    printf("\nb2:%d",b2);
    printf("\nc1:%d",c1);
    printf("\nc2:%d",c2);
    printf("\nd1:%d",d1);
    printf("\nd2:%d",d2);
    printf("\nd3:%d",d3);
    printf("\nd4:%d",d4);

    return 0;
}

- 阅读剩余部分 -

共有 人打赏支持
粉丝 3
博文 13
码字总数 14283
×
龍禳
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: