第10节 C语言之运算符的优先级和类型转换

时间:2023-01-28 20:47:23


一、运算符的优先级


1.C语言中 ()优先级最高 ,下标运算符[],.点语法(属性),

    ->指针(成员选择)


2.自增++,自减--,* 间接寻址运算符,&取地址,!逻辑非

3./ 除 ,*法 ,+,-,<< >>,>,>=,<,<=,==,!=,&按位与,^异或

4.&&逻辑与 ,||逻辑或,  条件运算符?:,= 赋值运算符

5. 逗号运算符  ,



二、类型转换


1.自动类型转换(隐式类型转换)

    就是不同类型的数值,如 double int float在进行运算时,系统会自动将级别低得类型转换为级别高的类型,然后进行运算,运算的结果与其中级别较高的操作数的类型相一致。


    1.使用算术运算符 或算术表达式的运算过程中

         double res = 0;

         int a = 100;

         int b = 50;


         res = a + b;


         res = 3.14 + 2.5;


    2.就是在赋值运算符 或赋值表达式的过程中


        char ch = 'A';


        int b = 'A' - 32;


   3.输出转换


       char ch = 'A';


       printf("%c\n",ch);    ----->A

       printf("%d\n",ch);    ----->65


       float fl = 3.14f;

       printf("%.2f\n",fl);   ---->3.14

       printf("%d\n",fl);     ---->3


补充:隐式类型转化的规则


      double  <-----float

          ^

          |

      unsigned long<------ long 

          ^

          |

       unsigned int <------ unsigned short int

          ^

          |

          int <-------short 、char


2.强制类型转换(显式类型转换)


        强制是利用强制类型转换讲数据类型转换成我们所需要的类型。


        如: int a = 5;int b = 2;

                 double res = (double)a/b;


                 int c = 3,float d = 2.5;

                 (int)d + c;