转自 https://blog.csdn.net/mustard1020/article/details/79617865
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=5,再做a=++1,故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