按优先级和结合律 原表达式相当于 ((n=(i=2)),++i),i++
要注意赋值表达式的值是左边操作数的值,逗号表达式是右边操作数的值
所以该表达式是i++的值 i++是先得出i的值再+1的 所以就是求前面i的值 很明显通过前面计算i=3了
即表达式的值应该也为3吧。 不过有些编译器也可能输出4 这样的表达式很没意义
n和i都是2
++i 就是先给 i 加个1;然后在使用 I i=3
i++就是先使用 i ;在加 1 i=4
int n, i, temp;
n=i=2;
temp = ++i; // temp = 3, i = 3
temp = i++; // temp = 3;
// i = 4
没看明白你问题的意思,不过
++
在变量前面和在后面的优先等级是不一样的。
n=2,i=3;