VC++环境下连续自增(自减)运算规则 i++ ++i

VC++环境下连续自增(自减)运算规则
1、        在一般表达式中和在函数参数中计算的结果相同(这一点与Turbo C环境不同);
2、        后缀:同表达式中Turbo C的情况相同:先统一取值后依次自增,如:
int a,i=5;  a=i+++i+++i++; a=15, i=8.
3、        前缀:对整型,前两个自增同Turbo C,即依次自增后统一取值,后面的每个自增后即
取值,如:
   int a, i=5;  a= ++i +(++i)+(++i);  a=22, i=8.
          对实型,每个自增后即取值,如:
float  a, i=5;  a= ++i +(++i)+(++i);  a=21, i=8.
4、        前后缀混合的情况:
(1)        一般情况:表达式中自左向右计算,参数自右向左运算。前缀自增后取值;后缀(或变量)取值依其所处位置而定,有连续多个将统一取值,其自增在语句结束前进行。
(2)        前后缀各有一个的情况:设int i=5; 由于i++*++i应满足交换率与++i*i++相同,规定按后者计算故为36。实验2内容4:int i=5; printf("%d,%d\n", --i, i++*++i ); 打印5,36。

(3)        若i++或++i或两者有多于一个的情况:++i有两个以上在一起时最左边的连续自增同3、,其余每个自增后取值,

如:int i=5;

printf("%d\n%d\n",--i,(++i)+(i++)+(i++)+(++i)); 打印9 - 1 = 8和6 + 6 + 6 + 7 = 25
printf("%d\n%d\n",--i,(++i)+(++i)+(++i)+(++i)+(i++)); 打印9-1 = 8和7 + 7 + 8 + 9 + 9 = 40
printf("%d\n%d\n",--i,(++i)+(++i)+(++i)+i+(++i)+(++i)); 打印10-1 = 9和 7 + 7 + 8 + 8 + 9 + 10 = 49
(4)        函数参数中有括号时,括号参数优先计算,其余参数仍自右向左计算,如:
int i=9,j=8; printf("%d  %d\n", (++i, j--), ++i); 打印8  11
         printf("%d  %d  %d\n", (++i, j--), ++i, i); 打印8  11  10
(5)        最后i的值等于原值加总自增次数减自减的次数
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值