经典i++和++i问题(附带运算符优先级问题)

1.i++和++i的区别

    (1)i++简单来说就是先用i的值来参加表达式的计算,然后再自加1
                i=4;
                a=i++;        //此时,先做a=i=4,再做i++,故a=4,i=5
    (2)++i则是先自增1,再用自加后的值来做运算。
                i=4;
                a=++i;         //此时,先做++i,i=i+1=5,再做a=i=5,故a=5,i=5
2.运算符的优先级

               

    *典型例题1 (比较下面两个代码输出结果的不同)
    程序1:
          
    程序2:
          
    *典型例题2(输出程序结果)
         
          该程序分别输出:
          7
          8,8
          (1)首先指针ptr指向数组arr的arr[0]=6
          (2)*(ptr++)+=123,先执行*(ptr)+=123,相加结果为129,再执行自加1,此时*ptr指向arr[1]
          (3)printf此时的指针ptr,即打印arr[1]的值,故为7
          (4)在执行下一句printf时,因为‘()’,‘++’的优先级均高于‘,’所以指针ptr会先自增1,故指向arr[2]=8
  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值