background image

        a=(int) (7.0/4);
    因为 7.0/4 的值为 1.75,如果在前面加上(int)就表示把结果强制转换成整型,这就得
到了 1。那么思考一下 a=(float) (7/4);最终 a 的结果是多少?
    单目减运算符相当于取相反值,若是正值就变为负值,若是负数就变为正值。
    单目加运算符没有意义,纯粹是和单目减构成一对用的。

三、逻辑运算符
    逻辑运算符是根据表达式的值来返回真值或是假值。其实在C 语言中没有所谓的真值和
假值,只是认为非 0 为真值,0 为假值。
       

   

符号 功能

        &&    逻辑与
        ||    逻辑或
        !    逻辑非
    例如:
        5!3;
        0||-2&&5;
        !4;

     当表达式进行 &&运算时,只要有一个为假,总的表达式就为假,只有当所有都为真
时,总的式子才为真。当表达式进行||运算时,只要有一个为真,总的值就为真,只有当
所有的都为假时,总的式子才为假。逻辑非(!)运算是把相应的变量数据转换为相应的真/假
值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。
    还有一点很重要,当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,
后一部分就不会进行运算了。例如:
        a=2,b=1;
        a||b-1;
    因为 a=2,为真值,所以不管 b-1 是不是真值,总的表达式一定为真值,这时后面的
表达式就不会再计算了。

四、关系运算符
    关系运算符是对两个表达式进行比较,返回一个真/假值。
       

   

符号 功能

        >    大于
        <    小于
        >=    大于等于
        <=    小于等于
        ==    等于
        !=    不等于
    这些运算符大家都能明白,主要问题就是等于==和赋值=的区别了。
    一些刚开始学习 C 语言的人总是对这两个运算符弄不明白,经常在一些简单问题上出
错,自己检查时还找不出来。看下面的代码:
       if(Amount=123) ……
     很多新人都理解为如果 Amount 等于 123,就怎么样。其实这行代码的意思是先赋值
Amount=123

 

,然后判断这个表达式是不是真值,因为结果为 123,是真值,那么就做