【从零开始的C语言】操作符详解
文章目录
- 前言
- 一、操作符分类
- 二、算术操作符
- 三、移位操作符
- 3.1 左移
- 3.2 右移
- 四、位操作符(重要)
- 五、赋值操作符
- 六、单目操作符
- 七、关系操作符
- 八、逻辑操作符
- 九、条件操作符
- 十、逗号表达式
前言
本篇文章开始,我将开设《从零开始的C语言》专栏,我将会带你从0开始学习C语言。
一、操作符分类
在C语言中,操作符被分为好几类,包括算术操作符、位操作符、赋值、关系操作符等等…接下来我们逐一介绍:
二、算术操作符
+ - * / %
- / 操作符在两个操作数都是整数的时候进行整数除法,在操作数有一个浮点数的时候进行浮点数除法。
- %操作符只能对两个整数使用,是求余数使用的。
三、移位操作符
<< 左移操作符
右移操作符
3.1 左移
左边摒弃,右边补 **0**
3.2 右移
逻辑右移
右边丢弃,左边补 **0**
算术右移
右边丢弃,左边补 **符号位**
1.符号位为0,代表该数为正数;符号位为1,代表该数为负数。
2.具体补充什么,由编译器决定。
3.注意:位运算符不要移动负数位,因为这是位定义的行为!
四、位操作符(重要)
& | 按位与 | 两个位都是1,结果才是1 |
---|---|---|
按位或 | 两个位都是0,结果才是0 | |
^ | 按位异或 | 两个位相同为0,不相同为1 |
做一道题目:如何不使用中间变量交换两个值?
规律:任何数字与0异或,都是其本身!
#include <iostream>
using namespace std;
int main()
{
int a = 10;
int b = 20;
cout << a << b << endl;
a = a ^ b;
b = b ^ a;
a = a ^ b;
//a = a ^ a ^ b;
//b = b ^ b ^ a;
cout << a << b << endl;
return 0;
}
五、赋值操作符
赋值操作符可以与上面算术操作符和移位操作符相结合。
a += 10 -------> a = a + 10
a >>= 10 -------> a = a >> 10
六、单目操作符
所需变量为1个的操作符我们称之为单目操作符,主要介绍三个,逻辑反操作符!、sizeof操作符、以及强制类型转换操作符()。
1.逻辑取反操作符:!可以让得到的结果取反,比如 !true = false
2.操作符类型长度:sizeof 这个操作符经常被当作函数使用,因此可以携带括号
3.强制类型转换: () 强制类型转换后其实是一份常量。
七、关系操作符
像我们平时比较数据大小用的>、=、<、>=等等,这些操作符即是关系操作符,在之后c++学习过程中,我们还会重载这些符号来适应更复杂的内容
八、逻辑操作符
&& 逻辑与 : 表达式A与表达式B同时成立才成立
|| 逻辑或 : 表达式A与表达式B有一个成立就成立
注意:A || B的时候,如果A表达式已经成立,则会直接返回true而不会进入第二个表达式B的判断。
九、条件操作符
条件操作符又被称为三目操作符
表达式 : A ? B : C
A成立,执行B语句;否则,执行C语句,跟ifelse语句类似。
十、逗号表达式
逗号表达式即指用逗号隔开多个表达式,整个表达式的结果是最后一个表达式的结果。