后面的。如果想让当 Amount 等于 123 才运行时,应该 if(Amount==123) ……
五、自增自减运算符
这是一类特殊的运算符,自增运算符 ++和自减运算符--对变量的操作结果是增加 1 和
减少 1。例如:
--Couter;
Couter--;
++Amount;
Amount++;
看这些例子里,运算符在前面还是在后面对本身的影响都是一样的,都是加 1 或者减
1,但是当把他们作为其他表达式的一部分,两者就有区别了。运算符放在变量前面,那
么在运算之前,变量先完成自增或自减运算;如果运算符放在后面,那么自增自减运算是
在变量参加表达式的运算后再运算。这样讲可能不太清楚,看下面的例子:
num1=4;
num2=8;
a=++num1;
b=num2++;
a =++num1;这总的来看是一个赋值,把++num1 的值赋给 a,因为自增运算符在变
量的前面,所以 num1 先自增加 1 变为 5,然后赋值给 a,最终 a 也为 5。b=num2++;
这是把 num2++的值赋给 b,因为自增运算符在变量的后面,所以先把 num2 赋值给
b,b 应该为 8,然后 num2 自增加 1
变为 9。
那么如果出现这样的情况我们怎么处理呢?
c=num1+++num2;
到底是 c=(num1++)+num2;还是 c=num1+(++num2);这要根据编译器来决定,
不同的编译器可能有不同的结果。所以我们在以后的编程当中,应该尽量避免出现上面复
杂的情况。
六、复合赋值运算符
在赋值运算符当中,还有一类 C/C++独有的复合赋值运算符。它们实际上是一种缩写
形式,使得对变量的改变更为简洁。
Total=Total+3;
乍一看这行代码,似乎有问题,这是不可能成立的。其实还是老样子, '='是赋值不是
等于。它的意思是本身的值加 3,然后在赋值给本身。为了简化,上面的代码也可以写成:
Total+=3;
复合赋值运算符有下列这些:
符号
功能
+= 加法赋值
-= 减法赋值
*= 乘法赋值
/= 除法赋值
%= 模运算赋值
<<= 左移赋值