C++自增操作符你真的懂?

本文通过实例探讨了C++中自增运算符的行为,并通过具体的代码演示了在不同上下文中自增运算符的工作原理。

  虽然使用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;
}

- 阅读剩余部分 -

转载于:https://my.oschina.net/jinzei/blog/273998

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值