前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言初阶——操作符

C语言初阶——操作符

作者头像
北 海
发布2023-07-01 10:40:30
1410
发布2023-07-01 10:40:30
举报
文章被收录于专栏:用户10155340的专栏


🏄‍♂️前言

  我们常常说C语言是灵活且强大的语言,因为它有32个关键字,34种操作符,本文主要是介绍这些操作符。话不多说,直接开始!🎈🎈🎈🎈🎈🎈🎈🎈

🏄‍♂️正文

🏂算术操作符

算术操作有   +   -   *   /   % 我们挑特殊的介绍

🚵除号

除号比较特殊,如果两端操作数类型都一样就执行相应除法,比如 整型 / 整型结果为整型, 浮点型 / 浮点型结果为浮点型,但是如果整型 / 整型产生的结果中有小数(浮点型)只会显示整数部分,除非将其中一个或两个都写成浮点型,比如 5 / 3 产生小数但只显示整数,我们可以写成 5.0 / 3此时会显示小数部分。

🚵模号

%号叫模号(也叫取余号),作用是求两整型相除后的余数部分,比如 5 % 3 结果为 2 注意:%号两端操作数必须是整型,其他的可以是整型和浮点型

🏂移位操作符

移位操作符有左移位操作符<< 和 右移位操作符>>,同模号一样,它们的两端也必须为整数

🚵左移位操作符 <<

移位规则:将二进制整体向左移动,右边补0

🚵右移操作符 >>

移位规则:将二进制整体向右移动,左边补值分情况 1.逻辑右移:左边补0 2.算术右移:左边补原符号位(正数为0,负数为1)

🚵小结

 左移一位有将原数字扩大两倍的效果,右移一位有将原数字缩小两倍的效果(特殊数除外,如0、-1、1等) 注意:在使用移位操作符时,不能移动负数位,比如 a<<-1 这种是标准未定义的,可能会导致意想不到错误

🏂位操作符 

位操作符有三个 按位与&、按位或 |、按位异或 ^ 一样两端操作符必须是整数。 位操作也是在二进制位上进行操作的,位操作符原理是两个整数的二进制位一一相比。

🚵按位与& 

按位与是遇0为0,即一假则假。

🚵按位或 | 

按位或是遇1为1,即一真则真。

🚵按位异或 ^

 按位异或是相同为0,相异为1

 利用异或号能够实现不依靠第三方变量交换两数的操作,原理 a^a=0

🏂赋值操作符

赋值操作符能对变量进行重赋值,能够随心所欲的进行修改。 赋值操作符:=  此外还有复合操作符:+=   -=   *=   /=   %=   >>=   <<==   &=   |=   ^=   复合操作符表示操作数本身与后数进行操作,比如a+=3,表示a=a+3

🏂单目操作符

顾名思义,单目操作符就是只有一个操作数的操作符,单目操作符种类比较多。 同样的挑特殊的介绍

🚵取地址& 与 解引用* 

 这两个操作符是指针必备操作符,数据类型后加*表示指针型数据,对想指向的变量加上&表示取出地址赋给指针变量,而将指针变量加上*解引用后可以用得到原变量值。

🚵sizeof操作符

sizeof具有求大小的能力,但它不是函数,而是操作符,再使用时可以不加 ( ) ,sizeof中的表达式是不会进行运算的。

 sizeof 计算指针的大小

🚵按位取反 ~

对数值的二进制位全部取反(包括符号位),0变为1,1变为0。

🏂关系操作符

关系操作符比较简单,除了判断相等号比较容易漏写外,没什么难点了。 >   >=   <   <=   !=   ==

🏂逻辑操作符

逻辑操作符要与位操作、单目操作符分开记忆,因为三者比较相似。 逻辑与 && 、逻辑或 | |  逻辑与是两端中一个为假,整体就为假;逻辑或则是一个为真,整体就为真。 C语言中0表示假,非0表示真(一般用1表示真)。

360笔试题

🏂条件操作符(三目运算符)

条件操作符有三个操作数,形式为这样:exp1 ? exp2 : exp3  exp1为条件判断式,当判断式为真时,进入exp2,为假就进入exp3

🏂逗号表达式

逗号表达式是用逗号隔开多个表达式,然后从左向右计算,最终取最右边表达式的结果。

🏂下标引用、函数调用和结构体成员

三兄弟比较简单,放一起介绍

🚵下标引用 [ ]

下标引用出现于数组中,数组名+下标引用+下标值就可以找到对应元素

 🚵函数调用操作符 ( )

 函数调用操作符是函数必不可少的关键部分,无论是函数调用还是函数声明,亦或是我们的主函数,都有函数调用操作符是身影。

🚵访问结构体成员 .  ->

访问结构体成员有两种方式:普通访问与指针访问 普通访问:结构体.成员名 指针访问:结构体指针->成员名

🏂表达式求值

表达式求值的顺序一部分是有操作符的优先级和结合性决定的,表达式在求值时,同样存在类型转换的情况,比如整型转向浮点型。

🚵隐式类型转换(整型提升)

因CPU设计问题,使其很难实现整型(4字节,32比特位)以下的运算,于是这些类型在进行运算时会先发生整型提升(整型提升至32比特位,负数补1,正数补0),再进行相应计算,当计算完成后,会发生截断,截断值刚好能返回原来的类型。

🚵算术转换

算术转换指两个不同的数据类型发生转换,否则运算就无法进行,下面展示各数组之间的层次关系,称为寻常算术转换,排名越低越需要进行转换。

寻常算术转换

🚵操作符的属性

一般在较为复杂的表达式中有三个影响因素: 1.操作符的优先级 2.操作符的结合性 3.是否控制求值顺序 优先级 > 结合性 我们写的表达式如果不能通过操作符的属性确定唯一的计算路径,那么这个表达式就属于问题表达式,是存在问题的。

🏄‍♂️总结 

  操作符虽然多,但我们可以慢慢学;计算规则虽然多,但我们必须谨慎使用。不要因为自己的个人理解而写出逻辑混乱的错误代码,我们可以将复杂语句拆分,代码简洁不一定可行,不出问题才是成功。🎉🎉🎉

  如果你觉得本文写的还不错的话,期待留下一个小小的赞👍,你的支持是我分享的最大动力!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🏄‍♂️前言
  • 🏄‍♂️正文
    • 🏂算术操作符
      • 🚵除号
    • 🏂移位操作符
      • 🚵左移位操作符 <<
      • 🚵小结
    • 🏂位操作符 
      • 🚵按位与& 
      • 🚵按位或 | 
    • 🏂单目操作符
      • 🚵取地址& 与 解引用* 
      • 🚵按位取反 ~
    • 🏂关系操作符
      • 🏂逻辑操作符
        • 🏂条件操作符(三目运算符)
          • 🏂逗号表达式
            • 🚵下标引用 [ ]
            • 🚵访问结构体成员 .  ->
          • 🏂表达式求值
            • 🚵隐式类型转换(整型提升)
            • 🚵算术转换
            • 🚵操作符的属性
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档