栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言运算符

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 

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 个位:%dn",a,b,c);
}

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

         用于判断数据之间的关系

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

① 关系运算符的运算结果:逻辑结果:逻辑真(1),逻辑假(0)② 关系运算符的数据:关系运算符运算的时候只关心数据的大小,不关心数据的类型   

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

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

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

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

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

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

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

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

!变量/表达式

#include 

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:%dn",a,b,c,d);

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

     f = !b ;
     printf("a:%dn",f);
}

                3.5 复合运算符

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

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

#include 

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

    a*=b;
    c+=d;

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

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

        变量加一或减一

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

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

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

#include 

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

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

     printf("c:%d d:%dn",c,d);
}

                3.7 逗号运算符

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

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

      3)运算符原则:

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

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

#include 

int main()

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

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

      printf("%dn",a); //40
      printf("%dn",b); //3
      printf("%dn",c); //4
}

​​​​​​​        ​​​​​​​        3.8 条件运算符:“ ?:”

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

          原则:先计算条件表达式

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

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

#include 

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

      scanf("%d",&a);

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

        4.运算符优先级

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

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

3、算数运算符  >关系运算符 >位运算符 >逻辑运算符 

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

        5.数据类型转换

                5.1 自动类型转换

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

 例:0/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 

int main()
{
      int a = 10;

      printf("%dn",10/3);
      printf("%.2fn",10.0/3);
      printf("%.2fn",10/(double)3);
      printf("%.2fn",(float)a/3);    
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/997065.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号