++i,- - i,使用i值之后,再使i值+1或者-1。
i++,i--,使i值+1或者-1后再使用i值。
1、++,--结合方向是自右至左的,算术运算符是自左至右的,而且两者同优先级。
例
int i = 1;
int j = -i++;
运行后的结果是i = 2 j = -1, -i++ 实际上是 -(i++)(结合方向),由于是后++,因此先使用i的值,再取其相反数-i,并赋给j,最后再在i的值上加+1。
若改成 int j = -++i; ,则运行结果是i = 2 j = -2, -i++ 实际上是 -(++i),此处是因此先使用i的值,在i的值上加+1后再取其相反数-i,并赋给j。
2、+++,---等计算机是自左至右的解析这个运算符的。
例
i+++j,实际上(i++)+j,而不是i+(++j)。注意若i,j等于1,该表达式的结果是2,理由同1。
3、++、--在printf中的应用
例
int i =1;
printf(“%d%d%d”,i,++i,i--); printf的输出是采取栈的方法,分别将i--,++i,i压栈,再依次出栈。则压栈时,先取值i =1,压栈后底部元素值为1,再进行减1操作,此时i值为0,之后,进行+1操作再压栈,则第二个元素值为1,最后一个元素值就为1。即最后输出为1 1 1。