美文网首页
C语言 运算符与表达式

C语言 运算符与表达式

作者: 邻家的妹妹 | 来源:发表于2018-07-13 16:07 被阅读7次

    ###算数运算符:‘+’,‘-‘,’*‘,’/',’%(取余)‘,’+(正号)‘,’-(负号)‘

    算数运算符:%是计算两数相除后的余数,但这两个操作运算符都必须是整数类型;

    示例代码:

    #include <stdio.h>

    #include <math.h>

    void main(){

    int    a=10,b=6;

    printf("a取模b结果为:%d\n",a%b);

    float f=3.14f;

    float f2=35.45f;

    printf("f取模f2的值为:\n",fmod(f,f2));

    }

    结果输出为:4       ;        3.140000

    要点:取模算术运算符只能用于整数,求float浮点数的余数要调用fmod;fmod包含在math.h头文件中;

    ###关系运算符:>,    <,    >=,    <=    ,==(等于),    !=(不等于)

    注意:

    (1):在C语言中的相等关系 是  ’==‘   ,而  ’=‘   表示赋值运算符;

    (2):在C语言中用非0代表 true,用0代表false;

    ###逻辑运算符:||(或)        &&(且)            !(非)

    ###符合运算符:a+=3    等价于       a=a+3;

                                    x*=y+8  等价于  x=x*(y+8)

                                    x%=3     等价于  x=x%3

    ###条件运算符:exp1   ?     exp2:exp3

    条件运算符(?:)有三个操作数,故我们将其称为三目运算符。表达的意思为:如果exp1为真,则运算exp2,整个条件表达式的值为exp2的值;反之,则运算exp3,整个条件的值为exp3的值;

    例:

    #include <stdio.h>

    void main(){

    int a,b,m;

    printf("输入数字a:");

    scanf("%d",&a);

    printf("输入数字b:");

    scanf("%d",b);

    m=a>b?a:b;

    printf("您输入的数字a为%d\b为%d\n最大值是:%c=%d\n",a,b,m==a?'a':'b',m);

    }

    ###类型转换:

    1.隐式类型转换:

    (1)在表达式中,char和short类型的值,无论有负号还是无符号,都会自动转换成int或者unsigned int;(如果short的大小和int一样,unsigned   short 可表示short可表示的最大值就大于int,在这种情况下,unsigned    short  被转换成unsigned int)。因此他们被转换成表示范围更大的类型,故而我们把这种转换称之为“升级(promotion)”

    (2).按照从高到低的顺序给各种数据类型分等级:long  double,  double,float, unsigned  long,long long, unsigned long , long ,unsigned int  ,int;如果long 和 int 的大小相同,则unsigned  int的等级应位于long 之上。charhe short并没有出现在这个等级中,是因为它们参与运算时已经升级成了int或者unsigned  int;

    (3).在任何涉及两种数据类型的操作中,它们之中等级较低的类型辉被转换成等级高的类型;

    (4).在赋值语句中,等号(=)右边的值在赋予 等号(=)左边的变量之前,首先要将右边的值得数据类型转换成左边的类型。也就是说,左边的变量时什么数据类型,右边的值就要转换成什么数据类型的值。这个过程可能会导致右边的值得类型升级,也可能会导致其类型降级(demotion)。所谓降级就是指:等级较高的类型的被转换成等级较低的类型;

    (5).作为参数传递给函数时,char和short 会被转成int,float会被转成int,float会被转换成duoble;

    相关文章

      网友评论

          本文标题:C语言 运算符与表达式

          本文链接:https://www.haomeiwen.com/subject/pubjpftx.html