关于 i+2 与 i+=2 的区别
为了下文方便讲解,我们先将i的值赋为1。
i+2:
该表达式为暂时值,即 i 被暂时赋值为2,其真实值仍然为1,运算过后 i 的值仍然是1,不作出任何改变。
i+=2:
该表达式做出了永久性的改变,即在 i 原有的基础上,将其的原有值再加上2,即结果为 i=3。
例如:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j=2;
i=(j++,++j,j+2,j-3);
printf("i=%d",i);
return 0;
}
运行结果为:
i=1
在该程序中,我们可以看到 j+2 并没有参与运算(即对最终结果造成任何影响),而是被跳过,直接运算了 j-3 。
故所输出的结果不为 3 ,而是 1 。