【菜鸟逆袭记】之初识操作符

1.算术操作符

(1)前置和后置

这里 + 和 - 都是字面意思,没啥好讲的。我们上点难度—>区分一下前置 + +(- -)和后置+ +(- -)的不同

#include<stdio.h>
int main()
{
	int a = 100;
	//int b = a++;  //后置++
	int b = ++a;  //前置++
	printf("a=%d b=%d", a,b);
	return 0;
}

运行结果:
前置

后置

怎么样,结果跟你想的一样吗。接下来让我们来分析一下产生这种差异的原因:

int b=++a=(++a);
a=a+1; b=a;
前置++:先++,后使用

int b=a++=(a++);
b=a; a++;
后置++:先使用,后++

  • 前置- -和后置- -的底层逻辑是一样的。那么你们可以当做列子拿来练练手

(2)取膜(%)和除法(/)

日常生活中,我们用的乘法(×)和除法(÷)在C语言中可不是这样的哦。C语言的乘法是C语言的乘法是 * ,除号是 / ,这一点一定要牢记,不要搞混哦。
知道了它们的用法,接下来讲一讲注意的地方:

1./ 除号的两端如果都是整数,执行的是整数除法—保留整数部分
2./ 除号的两端至少一个树是浮点数,才执行的是浮点数的除法—日常生活中的除法
3.取膜–顾名思义就是取余数,它的两端操作数必须都为整数才可以

接下来就上代码看看:
1.
运行结果:

结论:
进行整数除法,无论如何结果都是整数部分,用浮点数来接收都不行

2.
在这里插入图片描述
运行结果:
在这里插入图片描述
结论:
两端至少有一个浮点数类型的数据,那么执行的就是浮点数除法

3.

运行结果:

结论:
取膜运算的两端操作数必须都为整形类型

2.移位操作符

这里涉及二进制,以后会讲的。持续关注我哦

3.位操作符

这里涉及二进制,以后会讲的。持续关注我哦

4.赋值操作符


a + = b <---->a = a + b
a - = b <----->a = a - b
a * = b <----->a = a * b
a / = b <----->a = a / b

注意:

  • =(赋值操作符)和= =(逻辑操作符)不一样-----以a = b 和 a = = b为例子解释一下
    -----前者是把 b 的值赋给了 a ;后者是 a 和 b 相等

5.单目操作符


补充:
在C语言中,判断真假的方法是:0 为假,非0为真(一般是1),记住:这里是非0,负数也是真

(1)逻辑反操作( !)

逻辑反操作主要是用来打印条件为假的内容

  1. 如果想的打印真的内容-----if(a)
  2. 如果想的打印假的内容-----if(!a)

上代码:
在这里插入图片描述
运行结果:

(2)sizeof

这里需要把sizeof 和strlen两个比较来看:

1.sizeof—操作符无须引头文件—计算数据及其类型所占用空间的大小,单位是字节
2.strlen—库函数,头文件是<string.h>—计算字符串中 前面的字符个数,单位是个

在这里插入图片描述
这里,我们不难发现:
当同时计算一个字符串(hello)的时候,strlen的结果是 5 ,没有算上 ;而sizeof 的结果是 6 ,算上了 所占用的空间

(3)强制类型转化

基本构成:(目标类型)变量
注意:( )不能少


运行结果:

结论:
如果一个浮点型的数据强制类型转化为整形—只取整数部分

6.关系操作符

这里重点前面都有讲过,可以翻上去看看

7.逻辑操作符

  1. &&------两边同时为真,才为真,其他都为假
    2. ||------两边同时为假,才为假,其他全为真(这里翻过坑的)

8.条件操作符


注意:
别看是问号(?),其实是情况为真的输出(这里翻过墙)

我们用这个来实现一个求两个数的最大值:

运行结果:

结论:
1.三目操作符跟 if self 的底层原理相似
2.基本构成:表达式1 ?表达式2 :表达式3
3.表达式2 相当于 if 成立后执行的语句;表达式3相当于 if 不成立 else 执行的语句

9.逗号表达式

这个我们以后再讲,记得持续关注我哦

10.下标引用、函数调用和结构成员

  1. [ ]----用于数组
    2.( )----函数调用
    3.点(.)和 -> —用于结构体
    这一部分的大多数内容详细讲解我都在【菜鸟逆袭记】之初识C语言中讲过,不清楚的小伙伴,可以移步去看一看
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>