目录
前言
💖hello大家好,我是你们的博客伙伴ljp-nan💖,今天我学习了操作符的一部分内容,下部分内容请静静的等待,💖那么现在,我们就开始学习C语言操作符的前半部分内容。💖话不多说,请看下文。💖
🚅操作符的分类
C语言中有多少种操作符呢?答案是十种。它们包括算数操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构体成员。这些操作符的使用方法下面会详细介绍,由于篇幅太长本篇文章只介绍前八种操作符。
🚅算术操作符
这种操作符就是数学里离不开的加减乘除还有取模操作符。它们在C语言中的书写形式如下:
+ - * / %
这里需要解释的是%操作符,因为在这里它最特殊。
- 除了%操作符之外,其他的算术操作符可以作用于整数和浮点数。
- 对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
- %操作符的两个操作数必须为整数。返回的是整除之后的余数。
🚆在这里我们来看看以下的代码
🚆在讲移位操作符之前,必须有良好的二进制知识,友友们可以跳到这篇文章进行学习。
需要注意的是,内存中存储的是数据的补码。
🚅移位操作符
可以分为左移操作符,右移操作符。表现形式如下
<< 左移操作符
>> 右移操作符
🚆左移操作符
运算规则:左边抛弃,右边补0。
如图所示:
🚆代码表示:
在这里做一个练习,把3的二进制序列从右往左数的第四位变为1。
🚆右移操作符
右移操作符分为两种,一种是逻辑移位,左边用0填充,右边丢弃。另一种是算数移位,左边用原该值的符号位填充,右边丢弃。
如图所示:
注意,移位操作符不能移动负数位,这个是标准未定义的
vs2019使用的是算术右移
看到这里大家就可以理解移位操作符了
🚅位操作符
位操作符可以分为按位与,按位或,按位异或三种。表现形式是这样的
& //按位与
| //按位或
^ //按位异或
🚆下面可以看几组代码了解位操作符
位操作符的两边必须都为整数
🚆再来看一道面试题:
不能创建临时变量 (第三个变量),实现两个数的交换
🚅赋值操作符
赋值操作符是一个非常棒的操作符,它可以让你得到一个你之前不满意的值。也就是你可以给自己重新赋值。
int main() { int weight = 120;//体重 weight = 89;//不满意就赋值 double salary = 10000.0; salary = 20000.0;//使用赋值操作符赋值。 //赋值操作符可以连续赋值,但是我们一般不这样用 int a = 0; int y = 0; int x = 0; a = x = y + 1; //可以分解成 x = y + 1; a = x; //这样更加清晰 return 0; }
🚆复合赋值符
这些作为简单了解,可以在自己的代码里使用
+=、-=、*=、/=、%=、>>=、<<=、&=、|=、^=
这些操作符可以写成如下效果
其他运算符是一样的,这样写代码看起来更加简洁。
🚅单目操作符
🚆!逻辑反操作,这个操作符的作用是把真改为假,把假改为真。
🚆 - 负值
🚆+ 正值
🚆& 取地址,这个操作符再scanf函数和指针部分经常使用,可以取出变量的地址。
sizeof 操作数的类型长度(以字节为长度),这里需要注意,sizeof里面的数组名不是首元素地址,他表示整个数组,取地址数组名(&arr)取出的是整个数组的地址。
这里不在赘述,前面的文章已经解释了原因。
🚆++ 前置、后置++
🚆-- 前置、后置--
#include <stdio.h> int main() { int a = 10; int x = ++a; //先对a进行自增,然后对使用a,也就是表达式的值是a自增之后的值。x为11。 int y = --a; //先对a进行自减,然后对使用a,也就是表达式的值是a自减之后的值。y为10; return 0; } //后置++和-- #include <stdio.h> int main() { int a = 10; int x = a++; //先对a先使用,再增加,这样x的值是10;之后a变成11; int y = a--; //先对a先使用,再自减,这样y的值是11;之后a变成10; return 0; }
🚆* 解引用操作符,这个操作符具体使用再指针部分会经常使用
🚆(类型)强制类型转换
🚅关系操作符
关系操作符有:> >= < <= != 用于测试“不相等” == 用于测试“相等”。
这些操作符是很简单的,注意别把==写成=就可以了。
🚅 逻辑操作符
&& 逻辑与
|| 逻辑或
🚆这里需要区分逻辑与和按位与,逻辑或和按位或的区别
- 逻辑与和或不对二进制进行操作,更偏向于逻辑。
- 按位与和或是对二进制进行操作,更偏向于运算。
- 逻辑或和逻辑与是存在短路的,而按位或和按位与是不存在的。
🚆短路是指:逻辑与的第一个表达式为假,那么就不会计算后面的表达式。逻辑或的第一个表达式为真,那么就不会计算后面的表达式。
来看一个题:
上面的题目用到了逻辑操作符的短路运算。
🚅一个练习:
🚆编写代码实现:求一个整数存储在内存中的二进制中1的个数。
🚅结语:今天我们就学习到这里,大家可以去找练习题巩固今天所学的知识,制作不易,请大家点点关注,点点赞。谢谢大家!