--i称为前缀运算,i--称为后缀运算
前缀运算后,表达式的值为原变量值减1;
后缀运算后,表达式的值仍为原变量值;
而变量值不论前缀运算还是后缀运算都减1。
例如:i=10
--i的值为原变量值减1,是9;现在的变量i也是9
i=10
i--的值为原变量值,是10;而变量i现在就是9
-i--就是先进行i--运算,然后再取其负值。
下面是C语言运算符的优先级:
--与负号处于同一优先级,而结合方向是从右到左,所以是先进行i--运算,再取负号。
i--就是把i自减1,但是它的返回值却是i,这就是i--与--i的区别,--i的返回值就是i-1了。
具体看下面一个程序:
#include<stdio.h>int main(void)
{
int i = 2
int j = 2
printf("i的初始值的为%d\n",i)
printf("j的初始值的为%d\n",j)
printf("-i--的值的为%d\n",-i--)
printf("- --j的值的为%d\n",- --j)
printf("i的值的为%d\n",i)
printf("j的值的为%d\n",j)
}
结果为: