C语言-操作符(一)

目录

前言

 🚅操作符的分类

🚅算术操作符

🚅移位操作符

🚆左移操作符

 🚆右移操作符

🚅位操作符

🚅赋值操作符

 🚆复合赋值符

🚅单目操作符

🚅关系操作符

🚅 逻辑操作符

🚅一个练习:


前言

💖hello大家好,我是你们的博客伙伴ljp-nan💖,今天我学习了操作符的一部分内容,下部分内容请静静的等待,💖那么现在,我们就开始学习C语言操作符的前半部分内容。💖话不多说,请看下文。💖

 🚅操作符的分类

C语言中有多少种操作符呢?答案是十种。它们包括算数操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构体成员。这些操作符的使用方法下面会详细介绍,由于篇幅太长本篇文章只介绍前八种操作符。

🚅算术操作符

这种操作符就是数学里离不开的加减乘除还有取模操作符。它们在C语言中的书写形式如下:

+ - * / %

这里需要解释的是%操作符,因为在这里它最特殊。

  • 除了%操作符之外,其他的算术操作符可以作用于整数和浮点数。
  • 对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
  • %操作符的两个操作数必须为整数。返回的是整除之后的余数。

🚆在这里我们来看看以下的代码

 

🚆在讲移位操作符之前,必须有良好的二进制知识,友友们可以跳到这篇文章进行学习。

http://t.csdn.cn/oWrH6

需要注意的是,内存中存储的是数据的补码。

🚅移位操作符

可以分为左移操作符,右移操作符。表现形式如下

<< 左移操作符

>> 右移操作符

🚆左移操作符

运算规则:左边抛弃,右边补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的个数。

🚅结语:今天我们就学习到这里,大家可以去找练习题巩固今天所学的知识,制作不易,请大家点点关注,点点赞。谢谢大家! 

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值