zoukankan      html  css  js  c++  java
  • 06-C语言运算符2

     目录:

    一、类型转换

    二、条件运算符

    三、逗号运算符

    四、运算符优先级

    回到顶部

    一、类型转换

    1.类型升级,浮点型高于整型,长整型高于整型,有符号与无符号取有符号。

    2.在C语言中,类型转换没有提示。

    高 long double

         double

         float     

         long long

         long

    低 int

    低精度的值付给高精度的值是没问题的

    高精度的值付给低精度可能有问题

    3.其他转换,浮点型和整型转换,转换浮点型(double)在运算。short/char的运算转成int后运算。

    4.如果程序进行类型转换,可以使用强制类型转换,

    格式:目标类型 变量=(目标类型)原类型变量

    不管表达式的类型比强制的类型高还是低,都是可以的。

    注意:类型转换的时候,实际是建立一个新的变量(开辟新的存储空间),原有的变量不变。

    #include <stdio.h>
    
    int main()
    {
        int i = 10;
        float f = i;
        printf("f:%f
    ",f);
        int i2 = 200;
        //强制类型转换
        char c = (char)i2;//高精度->低精度
        printf("c:%d
    ",c);
        printf("i+f:%lf
    ",i+f);//lf是double类型占位符
        int i3 = 20;
        float f2 = i3;
        f2 += 1;
        printf("i3:%d
    ",i3);
        printf("f2:%f
    ",f2);
        return 0;
    }

    回到顶部

    二、条件运算符

    1.又叫多目运算符,三目运算符

    2.语法格式:条件表达式?表达式1 :表达式2

    若条件表达式为真,则条件表达式的值位表达式1的值,否则为表达式2的值。

    若表达式1和表达式2为不同的类型时,整个条件表达式的类型为二者中精度较高的类型。

    练习:在键盘上输入一个字母,将小写转换为大写,如果是大写就原样输出。

    #include <stdio.h>
    //在键盘上输入一个字母,将小写转换为大写,如果是大写就原样输出。
    int main()
    {
        printf("请输入一个字母:
    ");
        char c;
        char c1;
        scanf("%c",&c);
        c1 = (c >= 'a' && c <= 'z') ? c-('a'-'A') : c;
        printf("%c转换为大写:%c
    ",c,c1);
        return 0;
    }

    char c = '101';这里是八进制的数。

    回到顶部

    三、逗号运算符

    1.i=(表达式1,表达式2,表达式n);i = (j+1,k+1,l+1);

    2.整个表达式以此计算各表达式的值,值以表达式n的值作为整个表达式的值,类型以表达式n的类型为整个表达式的类型。注:前面的表达式不会运算,是没有意义的。

    3.并不是所有出现逗号的地方都组成逗号表达式,如果在声明变量、函数参数中逗号的作用就是分隔符。int i = 10,j = 20,k = 30,l = 40;

    #include <stdio.h>
    
    int main()
    {
        int i = 10,j = 20,k = 30,l = 40;
        i = (j+1,k+1,l+1);//取最后l+1的值,前边的表达式并不计算
        //i = j+1,k+1,l+1;//k和l的值不改变
        printf("i:%d
    ",i);
        printf("k:%d
    ",k);//j和k的值并没有改变
        printf("l:%d
    ",l);
        return 0;
    }

    回到顶部

    四、运算符优先级

    1.单目运算符(++、--)较高,赋值运算符低,算术运算符较高,关系运算符和逻辑运算符较低,从高到底参考关系:如

    高  初等运算符:(),[ ]

    |        单目运算符:!、++、--、-、类型转换、&、*、sezeof()

    |        算术运算符:* / + -

    |        关系运算符:>  >=  <  <=  ==  !=

    |        逻辑运算符:! 高于 && 高于 ||

    |        条件运算符:?:

    |        赋值运算符:=  +=  -=

    低          逗号运算符: ,

     注:如果无法确定优先级,可使用()。

    2.运算顺序(结合性),多数运算符具有左结合性,单目/三目/赋值运算符具有右结合性。

    左结合性:a+b+c  =>  (a+b)+c

    右结合性:a=b=c  =>  a=(b=c)

    注:表达式的类型是参与该表达式的各种操作数中类型最高的。

  • 相关阅读:
    初学者易上手的SSH-spring 01控制反转(IOC)
    初学者易上手的SSH-hibernate04 一对一 一对多 多对多
    初学者易上手的SSH-hibernate03 三大状态与缓存
    初学者易上手的SSH-hibernate02 三种查询方式
    初学者易上手的SSH-hibernate01环境搭建
    Maven-环境搭建以及建立Maven项目
    初学者易上手的SSH-struts2 05拦截器与自定义拦截器
    初学者易上手的SSH-struts2 04值栈与ognl表达式
    screen常用操作总结
    word2016教程:使用密码保持修订
  • 原文地址:https://www.cnblogs.com/yangmx/p/3460543.html
Copyright © 2011-2022 走看看