i++和++i的最终解决方式

在一个表达式中,无论i++++i出现的次数,顺序如何,也无论+-*/的混合运算如何,都遵循如下规则:

1.       所有的i++++i的值都相等为A

2.       A等于执行所有++i后,i的值。

 

原因是编译如此工作:

1.找到所有的++i,执行

2然后找到所有的i++,执行

3计算表达式。

 

int i = 3;

int i,a;

     i=3;

     a = (++i)+(i++)+(++i)+(i++); 5+5+5+5=20

     printf("a=%d /n",a);

 

     i=3;

     a = (i++)+(++i)+(i++); 4+4+4=12

     printf("a=%d /n",a);

 

     i=3;

     a = (++i)*(i++)*(++i); 5*5*5=125

     printf("a=%d /n",a);

 

     i=3;

     a = (i++)+(++i); 4+4=16

     printf("a=%d /n",a);

 

     i=3;

     a = (++i)+(i++)*(++i)*(i++)*(i++);5+5*5*5*5=630

     printf("a=%d /n",a);

 

以上程序在vs2008,控制台程序中经过验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值