background image

后面的。如果想让当 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;
    复合赋值运算符有下列这些:
       

    

符号

功能

        +=    加法赋值
        -=    减法赋值
        *=    乘法赋值
        /=    除法赋值
        %=    模运算赋值
        <<=   左移赋值