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:
![](https://img-blog.csdnimg.cn/img_convert/c12fa7d521726eea7c101cae00463043.png)
程序2:
![](https://img-blog.csdnimg.cn/img_convert/1e221fa18990ec2aed069947eab6a760.png)
*典型例题2(输出程序结果)
![](https://img-blog.csdnimg.cn/img_convert/1c3aa112d8edf67030ee669bb459fec0.png)
该程序分别输出:
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