i++ 与 ++i
- 写出判断ABCD四个表达式的是否正确,若正确, 写出经过表达式中 a的值(3分)
int a = 4;
(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);
a = ?
答:C错误,左侧不是一个有效变量,不能赋值,可改为(++a) += a;
改后答案依次为9,10,10,11
分析:
A:相当于执行 a+=a; a++;
B:相当于执行 a++; a+=a;
C:修改后相当于执行 ++a; a+= a;
与B相同
D:相当于执行 ++a; a+= a; a++;
总结规律,++a的优先级最高,最先执行
其次是执行普通的运算
a++的优先级最低,最后执行。