自增自减运算符

如果n值为3,那么执行语句”m=-n++”后,m和n的值各为多少?

 

m=-n++;

相当于

m=-(n++);

而不是

m=(-n)++;

 

因为运算符++的运算对象只能是变量,不能是表达式,对一个表达式使用增1或减1运算是一个语法错误,因此”m=(-n)++;”本身也是不合法的.

 

由于在表达式”-(n++)”中,++是运算对象即变量n的后缀运算符,因此它表示先使用变量n的值,使用完n以后再将n的值增1.也就是说,上面这条语句实际上等效于下面两条语句:

m=-n;

n=n+1;

 

因此,执行该语句以后,m值为-3,n值为4.虽然这两种实现方式是等效的,但从程序的可读性角度而言,后面的两条语句比”m=-n++;”的可读性更好.

 

良好的程序设计风格提倡在一行语句中,一个变量最多只出现一次增1或减1运算.

posted @ 2017-03-29 14:33  Veneus  阅读(537)  评论(0编辑  收藏  举报