一篇文章带你玩转C语言基础语法3:运算符,运算符的基本用法【千字总结】
我的个人主页:光之梦的博客_云社区-华为云 (huaweicloud.com)
欢迎各位 👍点赞 ⭐收藏 📝评论,如有错误请留言指正,我会第一时间改正。非常感谢!
初学者推荐用的刷题网站:
特别标注:本博主将会长期更新c语言的语法知识,初学c语言的朋友们,可以收藏订阅一下我的<C语言基础语法>专栏。关注博主,学习不迷路哦
一、运算符
1.1 定义
运算符是指进行运算的动作,比如加法运算符"+",减法运算符"-"
算子是指参与运算的值,这个值可能是常数,也可能是变量,还可能是一个方法的返回值
1.2 单目运算符
只有一个算子的运算符:+,-
例如-a,-b,+a,+b
常用的单目运算符:
+ 正值
- 负值
! 逻辑反
& 取地址
sizeof 操作数的类型长度(计算的是变量/类型所占空间的大小,单位是字节)
~ 对一个数的二进制按位取反
(类型) 强制类型转换
1.3 双目运算符
我们已知,只有一个算子的运算符是单目运算符
那么,有两个算子的运算符就是双目运算符
如:a+b,b-a
那么,有三个算子的运算符就是三目运算符
1.4 赋值运算符
赋值(=)也是运算,也有结果
举个栗子:
a=6的结果是a被赋予的值,也就是6
a=b=6 在计算机中可以看成是: a = (b=6),也就是,先把6赋给b(此时b的值就是6),然后再把b的值(6)赋给a,所以a的值也是6
= += -= *= /= &= ^= I= >>= <<=
用法:
a+=3 相当于:a=a+3
a*=6 相当于:a=a*6
代码如下:
1.5 运算符优先级
1.6 算数运算符(特别重要)
+ 加法运算符
- 减法运算符
* 乘法运算符
/ 除法运算符
% 取余运算符
/ 的用法
5/2=2.5,由于a是整型(int),整形不包含小数部分,在计算时会把小数部分全部舍弃,所以a=5/2中a的结果是2
b=12345/10000 与e=12345/10 (我的想法:12345/10000,除数有几个零,被除数就舍弃几位数,如12345/10000,除数有4个零,那么被除数就舍弃后面四位数,所以答案就是:1)
由于b与e是整型(int),整形不包含小数部分,在计算时会把小数部分全部舍弃
所以b的值为1,e的值为1234。计算过程如下:
% (取余) 的用法
a=1%3,c=30%90的解析如上 ,1向3取余,1除以3余1。同上30%90=30
1%2 1向2取余 1除以2=0.5,由于是int类型会舍弃小数,所以1/2的值只能是0,所以原来的除数1,还会留下了,所以1%2=1
d=12345%10000,e=12345%10
如图,所以12345除以10000的余数就是:2345,12345除以10,余5
所以 :d=12345%10000=2345,e=12345%10=5
1.7 关系运算符
== 判断相等
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
关系运算符的结果:判断如果结果是 true(真) 则为 1
判断如果结果是 false(假)则为 0
用法:
1.8 逻辑运算符
逻辑运算是对逻辑量进行的运算,结果只有0或者1
逻辑量是关系运算或逻辑运算的结果
用代码表示:a大于等于1,小于等于6
!>&&>||
短路:
- 逻辑运算是自左向右进行的,如果左边的结果已经能够决定结果了,就不会做右边的计算了
- 对于&&,左边是false时就不会做右边的运算了
- 对于||,左边是true时就不会做右边的运算了
- 不要把赋值,包括复合赋值组合进表达式
总体优先级排名:
优先级 |
运算符 |
结合性 |
1 |
() |
从左到右 |
2 |
!+- ++ -- |
从右到左(单目的+和-) |
3 |
|
从左到右 |
4 |
+ - |
从左到右 |
5 |
< <= > >= |
从左到右 |
6 |
== != |
从左到右 |
7 |
&& |
从左到右 |
8 |
|| |
从左到右 |
9 |
= += -= *= /= %= |
从右到左 |
1.9 位运算符
& 按位与
I 按位或
<< 左移
>> 右移
1.10 条件运算符
? : ;
如:
优先级:条件运算符的优先级高于赋值运算符,但是低于其他运算符
1.11 逗号运算符
逗号用来连接两个表达式,并以其右边的表达式的值作为它的结果。逗号的优先级是所有运算符中最低的,所以它两边的表达式会先计算;逗号的组合关系是自左向右,所以左边的表达式会先计算,而右边的表达式的值就留下来作为逗号运算的结果
各位学习C语言的初学者,如果有问题随时都可以来问我,我会随时为您解答!欢迎大家与我一起学习,互相进步。
👍 +⭐ +📝(一键三连) 是对博主最大的鼓励与支持哦。
- 点赞
- 收藏
- 关注作者
评论(0)