第七章:C语言的操作符

> 作者:დ旧言~
> 座右铭:松树千年终是朽,槿花一日自为荣。

> 目标:理解C语言的函数。

> 毒鸡汤:行到流水处,坐看云起时。

> 专栏选自:C语言初阶

> 望小伙伴们点赞👍收藏✨加关注哟💕💕

前言

说起操作符大家都不陌生,从我们最初的 +  -  c   *  /  加减乘除,到更加深奥的操作符,而今天我要有完整的系统来理清楚C语言的操作符到底有什么,和它们相关的用法,话不多说,直接走进今天的主题----C语言的操作符。

 一,算数运算符

算数运算符:

  • +      -      *      /     %(取模)

这里不细讲加减乘,加减乘和数学是一样的,这里只谈   /   %。

二,移位操作符

移位操作符

  • << (左移操作符)  >>  (右移操作符)---移动是二进制哟(移的是补码)(在32比特位下移动)

图解:

总结: 

有些编译器不支持移动负数,移动后不改变自身

三,位操作符 (计算的是二进制) 

位操作符:

  • &  (相同为 1 即为 1 ,有 0 则为 0 )
  • |   (有 1 则为 1 ,两个相同时则为0)
  • ^    (相同为 0 ,相异为 1 )

①  &  |   ^ 计算

#include<stdio.h>
int main()
{
	int a = 1;
	int b = 2;
	int x1, x2, x3;
	// a 的二进制 00000000 00000000 00000000 00000001
	// b 的二进制 00000000 00000000 00000000 00000010

	x1 = a & b;
	// a  的二进制 00000000 00000000 00000000 00000001
	// b  的二进制 00000000 00000000 00000000 00000010
	// x1 的二进制 00000000 00000000 00000000 00000000
	x2 = a | b;
	// a  的二进制 00000000 00000000 00000000 00000001
	// b  的二进制 00000000 00000000 00000000 00000010
	// x2 的二进制 00000000 00000000 00000000 00000011
	x3 = a ^ b;
	// a  的二进制 00000000 00000000 00000000 00000001
	// b  的二进制 00000000 00000000 00000000 00000010
	// x3 的二进制 00000000 00000000 00000000 00000011
	//x1 = 0,x2 = 3,x3 = 3
	printf("x1 = %d,x2 = %d,x3 = %d\n", x1, x2, x3);
	return 0;
}

②不能创建变量(第三个变量),实现两个数的交换

#include<stdio.h>

//方法一:
//int main()
//{
//	int a = 1;
//	int b = 2;
//	a = a + b;
//	b = a - b;
//	a = a - b;
//	printf("a = %d,b = %d\n", a, b);
//	return 0;
//}
//当数字很大时就合适了

//方法二:
int main()
{
	int a = 1;
	int b = 2;
	a = a ^ b;  
	b = a ^ b; //看成 b = ( a ^ b ) ^ b,这里 b 和 b就可以消除
	a = a ^ b; //这里其实就变成 a = ( a ^ b ) ^ a,这里 a 和 a就可以消除
	printf("a = %d,b = %d\n", a, b);
	return 0;
}

四,赋值操作符

赋值操作符:

  • +=     -=     *=      /=     %=     
  • >>=    <<=     &=     |=       ^=(复合赋值符)

举个栗子:

#include<stdio.h>
int main()
{
	float weight = 55.5f;//加 f 的目的使区分double
	double high = 1.78;
	int age = 18;

	return 0;
}

//记住 C语言的 = 和 == 是两码事
// a =  1  赋值运算符
// a == 1 是判断 a 是否等于1

五,单目操作符

分类:

 总结:

六,关系操作符

关系操作符:

  • >              >=             <           <=           !=          ==

注意:

  • a =  1  赋值运算符            a == 1 是判断 a 是否等于1

七,逻辑操作符

逻辑操作符:

  • && (并且的意思)
  •  ||  (或者的意思)

图解:

举个栗子:

#include<stdio.h>

//int main()
//{
//	int a = 0;
//	int b = 0;
//	if (a == 0 && b == 0)
//	{
//		printf("hehe\n");
//	}
//	else
//	{
//		printf("haha\n");
//	}
//	return 0;
//}
//打印出hehe

int main()
{
	int a = 0;
	int b = 0;
	if (a == 0 || b == 1)
	{
		printf("hehe\n");
	}
	else
	{
		printf("haha\n");
	}
	return 0;
}
//打印出hehe

八,条件操作符

条件操作符:

(   语句 1      ?  (语句 2 :语句 3)) 如果语句1为真就执行语句2,否则执行语句3

举个栗子:

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 1;
	int c = a > b ? a : b;
	//如果 a 大于 b 就把 a 的值赋给 c,否则就把 b 的赋给 c
	printf("%d\n", c);
	return 0;
}
//打印出:1

九,逗号表达式

概念:

  • 逗号表达式,就是用逗号隔开的多个表达式。
  • 逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。

举个栗子:

#include<stdio.h>

int main()
{
	int a = 1;
	int b = 2;
	int c = (a > b, a = b + 10, a, b = a + 1);
	//这里 a > b 没有什么关系,a = b + 10 = 2 + 10 = 12
	//这里 a 没有什么关系,b = a + 1 = 12 + 1
	//最后 c = b
	printf("%d\n", c);//打印出:13
	return 0;
}

十,下标引用(已讲),函数调用(已讲)和结构体成员

下标引用:[  ] 

函数调用:函数名();

结构体成员:  .    ->(这里不细讲,后面会详细介绍)

关于操作符的优先级图片

结束语

       今天内容就到这里啦,时间过得很快,大家沉下心来好好学习,会有一定的收获的,大家多多坚持,嘻嘻,成功路上注定孤独,因为坚持的人不多。那请大家举起自己的小手给博主一键三连,有你们的支持是我最大的动力💞💞💞,回见。

​​​ 

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值