关于C语言增量符号使用2

来源:百度知道 编辑:UC知道 时间:2024/07/15 08:38:13
int j=2,m=2
m+=(j++)+(++j)+(j++)
printf("%d",m)

第一条、关于自增自减运算,很多书籍没有把问题讲清楚,在C语言里是这样的:

1.后置运算:k++表示先运算,后自加。
意思是遇到k++了,我先把当前的k的值拿来参加运算,后面再去管它的自加。
那么,【“后面”后到什么程度呢?要后到当前的语句执行完,即遇到分号;表示
语句执行完了,所以k才自加1。】

2.前置运算:++k表示先自加,后运算
这个意思就是遇到++k了,先把k的值加了1,再往后执行别的。
掌握好这两点,k--和--k也是一样的道理。

但是我不明白的是,m+=(j++)+(++j)+(j++)的结果是m=11。而m= m+ (j++)+(++j)+(j++);的结果是m=10。

听我一句:编译器不同结果不同,这种问题毫无意义。