c++自增自減問題 在程序设计中,经常遇到“i=i+1”和“i=i-1”这两种极为常用的操作
变量 i被称为“计数器”,用来记录完成某一操作的次数
C语言为这种计数器操作提供了两个更为简洁的运算符,即++和--,分别叫做自增运算符和自减运算符
它们是从右向左结合的一元算术运算符,优先级为2
学习和应用这两个运算符时应注意以下几点: 1 注意表达式的值和变量值的区别 以自增运算符为例,当自增运算符++作用于一个变量时,例如:当 i=3时++i这个算术表达式的值为4,同时变量 i的值也由原来的3改变为4
一般情况下,计算表达式后不改变变量本身的值,而++运算符和--运算符组成的表达式计算后,则改变变量的值,这称为运算符的副作用
这类运算符在计算表达式时,一定要注意区分表达式的值和变量的值
2 注意前缀运算和后缀运算的区别 仍以自增运算符为例,该运算符可作用在变量之前,例如前面所讲的++i,称为前缀运算;也可作用在变量之后,例如 i++,称为后缀运算
在这两种运算中,表达式的值不同:前缀运算后,表达式的值为原变量值加1;后缀运算后,表达式的值仍为原变量值;而变量值不论前缀运算还是后缀运算都加1
自减运算符与自增运算符类似,只要将加1改为减1即可
即前缀运算是“先变后用”,而后缀运算是“先用后变”
3 注意运算符的运算对象 自增、自减运算符只能作用于变量,而不能作用于常量或表达式
因为自增、自减运算符具有对运算量重新赋值的功能,而常量、表达式无存储单元可言,当然不能做自增、自减运算
只要是标准类型的变量,不管是整型、实型,还是字符型、枚举型都可以作为这两个运算符的运算对象
如以下四个表达式都是合法的:i+++j++、++i+(++j)、++a+b++、++array[--j];而++6、(i+j)++、„A‟++、++i+++j、(&p)++这五个表达式却是不合法的