使用C语言运算符的注意事项

Author: Date: 1995-12-08

        同其他语言一样,使用C语言的运算符要注意优先级,如下例的逗号操作符:
        main()
        {
        int x=1,y=2,z=3,a,b;
        b=(a=x+y),(a+z)
        printf("a=%d,b=%d",b,a);
        }
        该语句得不到结果:b=6,a=3,原因是逗号操作符的优先级比赋值操作符的优先级低,应将赋值语句改为:
        b=(a=x+y,a+z);
        才能得到上述结果。
        有时运算符的应用可以扩充,如使用?算符代替if-else语句不仅仅限于赋值,还可以用来实现一个或多个函数的调用。因为除void说明外的所有函数都可以返回一个值,在C表达式中,遇到一个函数的名字时,这个函数就被执行,并有一个确定的返回值。将一个或多个函数调用放在表达式中,形成?的操作数,就能执行一个或多个函数的调用,再如使用位操作符可以对一个程序加密。如生成一个不可读磁盘文件时,可以通过1的补码运算得到编码,第二次求补时便得到其译码,使值还原。
        在使用运算符时,要注意不同运算符的使用,如:
        float a;
        printf("%d",size of f);
        printf("%d",size of(int));
        中第三句int的括号不能去,计算类型长度时,类型名必须用括号括起来,括号中不必放变量名,位操作直接对结果变量的每一位分别处理,所以位操作符通常不象关系和逻辑运算符那样用在条件语句中。