关于C的自增运算符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C的自增运算符相关的知识,希望对你有一定的参考价值。

先看下边的一段代码

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int i=3,j,k;
 5     
 6     j=i++;
 7     k=++i;
 8     printf("i=%d,j=%d,k=%d\n",i,j,k);
 9     printf("%d\n",-i++);
10     printf("%d,%d,%d,i,i++,i++);
11     return 0;
12 }

前两个输出函数应该比较简单,但是第三个输出函数输出的是:

8,7,6

不应该是6,7,8吗?

看了书上的解释,printf中,i,i++,i++的求值比较特殊,它是从右往左求值的。也就是先求最右边的i++,此时先引用的i的值为6,之后i的值变为7,然后是中间的i++,先引用i的值7,然后把i的值加1使之变为8,最后是左边的i,此时i的值是8.

以上是关于关于C的自增运算符的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB的自增,自减运算符是什么?

以php中的自增自自减运算符操作(整型,浮点型,字符串型,布尔型,空类型)数据

关于 mysql 事务中的自增 id 的疑问

Java运算符

JS中的自增自减问题

关于自增运算符