C语言运算符

1. 概念      

        运算符是指能够进行运算的特殊符号

2. 分类

        1)单目运算符:一个操作数

        2)双目运算符:两个操作数

        3)三目运算符:三个操作数,只有一个“ ? :”

3. 常用运算符

3.1 赋值运算符:=

        1) 运算符作用:赋予变量数值。 a = 10;  a = 1+23+5*9;  a = b;

        2) 运算符格式:变量 = 变量;变量 = 常量,变量 = 表达式

        3) 运算符结合性:右结合性,先运算运算符右边的变量或 表达式的值,再赋值给左边的变量。  a = 1+2;  a = b+c;  a = 1+f;

        注:赋值运算符左边不能是常量或表达式,只能是变量(存储空间)。

3.2 算术运算符:+ - * / %

        ① 整型跟整型运算:结果只能是整数,不会得到浮点型数据。

        ② 类型不同:在C语言中,只有类型相同的数据才能进行算数运算,如果类型不同,低精度的数据类型会自动向高精度的数据类型转换,数据类型的精度从低到高排列:

        char ---short----int ----long ---float -----double

        ③ 求余运算:浮点型不能进行求余运算。

#include <stdio.h>

int main()
{
      int a,b,c,d;

      printf("请输入一个三位数\n");
      scanf("%d",&d);

      a=d/100;
      b=d%100/10;
      c=d%10;

      printf("百位:%d 十位:%d 个位:%d\n",a,b,c);
}

3.3 关系运算符:>、<、>=、<=、==、!=

         用于判断数据之间的关系

         格式:变(常)量  表达式  变(常)量

        ① 关系运算符的运算结果:逻辑结果:逻辑真(1),逻辑假(0)

        ② 关系运算符的数据:关系运算符运算的时候只关心数据的大小,不关心数据的类型   

        ③ 关系运算符和算数运算符混合使用:先计算再判断

3.4 逻辑运算符:&&、 ||、 !

      逻辑与 &&:有一个为假则结果为假(当判断一个表达式为假时则后面不在运算,结果为假),全部为真则结果为真

        变量1/表达式1 && 变量2/表达式2 && …… 变量n/表达式n

       逻辑或 ||:有一个为真则结果为真(当判断一个表达式为真时则后面不在运算,结果为真),全部为假则结果为假

        变量1/表达式1 || 变量2/表达式2 || ……… 变量n/表达式n

        运算方向:&&、|| 从左往右开始判断

        逻辑非!:取反关系,真变假、假变真

        !变量/表达式

#include <stdio.h>

int main()
{
     int a=1,b=20,c=10,d=8,f;

     a = b==30 && c>20 && (d=10);
     printf("a:%d b:%d c:%d d:%d\n",a,b,c,d);

     a = b==30 || c>9 || (d=10);
     printf("a:%d b:%d c:%d d:%d\n",a,b,c,d);

     f = !b ;
     printf("a:%d\n",f);
}

3.5 复合运算符

        赋值运算符与其他双目运算符的结合使用:+=、-=、*=、/=、%=、<<=、>>=、&=、|=、^=。

        计算原则:先计算运算符右侧表达式,再代入左侧计算

#include <stdio.h>

int main()
{
    int a=2,b=3,c=4,d=5;

    a*=b;
    c+=d;

    printf(" a:%d  c:%d\n",a,c);
}

3.6 自加自减运算符:++、--

        变量加一或减一

        a++/--:先参与运算在自增/减(语句结束再自增/减)

        ++/--a:先自增/减再参与运算

        可以操作整型和浮点型数据

#include <stdio.h>

int main()
{
     int a=2,b=3,c,d;

     c=a++;
     d=++b;

     printf("c:%d d:%d\n",c,d);
}

3.7 逗号运算符

        1)运算符作用:将多条语句变成一条语句

        2)运算符格式:(语句1语句2,……语句n)

        3)运算符原则:

                a)运算方向:从左到右依次运算,所有表达式的值都要进行计算。

                b)运算结果:最后一个变量或表达式的值作为整体的值。

#include <stdio.h>

int main()

{
      int a,b,c,f = 40;

      a =( 12,b = 3,c = 4,45+8,f);

      printf("%d\n",a); //40
      printf("%d\n",b); //3
      printf("%d\n",c); //4
}

3.8 条件运算符:“ ?:”

          格式:条件表达式?表达式1:表达式2

          原则:先计算条件表达式

                1)如果为真则执行表达式1并将其作为结果

                2)如果为假则执行表达式2并将其作为结果

#include <stdio.h>

int main()
{
      int a;
    
      printf("请输入a的值:\n");

      scanf("%d",&a);

      a == 5 ? printf("正确\n"):printf("错误\n") ;     
}

4. 运算符优先级

(1)括号的优先级是最高的(当你不确定运算符优先级的时候,就加括号)

(2)运算符的操作数越少,优先级越高(单目运算符高于双目运算符)

(3)算数运算符  >关系运算符 >位运算符 >逻辑运算符 

(4)与运算符 >异或运算符 >或运算符(包括逻辑运算符和位运算符)

5. 数据类型转换

5.1 自动类型转换

        又称为隐性类型转换,自动按照从低到高的顺序转换

         例:10/3.0 --- 3.333

         char类型与short类型参与运算时自动转换成int类型

5.2 强制类型转换

         又称为显性类型转换,顾名思义就是强制让数据根据要求来转换数据类型。

         格式:(float)a 、int a

1) char向int、float转换

        转int:根据ASCII码表转换成对应的整数

        转float:整数部分根据ASCII码表转换成对应的整数,小数部分用0补齐

2) int向char、float转换

        转char:对256取余,并将结果赋值给char变量

        转float:保留整数位,小数位补0

3) float向char、int转换

        转char:去掉小数部分,并对256取余

        转int:整数部分为转换结果

#include <stdio.h>

int main()
{
      int a = 10;

      printf("%d\n",10/3);
      printf("%.2f\n",10.0/3);
      printf("%.2f\n",10/(double)3);
      printf("%.2f\n",(float)a/3);    
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值