C语言运算符【黑马视频笔记】

算数运算符

算数运算符介绍

符号

说明

+

加法

-

减法

*

乘法

/

除法

%

取余

#include<stdio.h>

int main()
{
	// + - *
	//数字直接计算
	printf("%d \n" , 2 +3);
	printf("%d \n", 2 - 3);
	printf("%d \n", 2 *3);
	printf("%.2lf \n", 2.6 + 5.6);
	printf("%.2lf \n", 2.6 - 5.6);
	printf("%.2lf \n", 2.6 * 5.6);
	//+ - *
	//变量进行计算
	int a = 3;
	int b = 6;
	printf("%d \n", a+b);
	printf("%d \n", a-b);
	printf("%d \n", a*b);
	//除法(/)
	printf("%d \n" , 10/2);  //5
	//取余(%)
	printf("%d \n", 10 % 2);  //0

	//通用细节:
	//1.整数计算,结果一定是个整数  
	printf("%d \n", 10 /3);  //3   ☆只留下整数部分
	//2.小数计算,结果一定是个小数  
	printf("%.2lf \n", 10.0+3.0);  //13.00  
	//3.整数和小数计算,结果一定是个小数  
	printf("%.2lf \n", 10 / 3.0);  //3.33
	//4.小数直接参与计算,结果有可能不精确
	printf("%.2lf \n", 10.333333 + 3.33333);  //13.67

	//除法的细节:
	//1.不能除以0

	//取余的细节:
	//1.运算的数据必须全是整数
	//2.获取余数的正负,是跟第一个数字保持一致的
	printf("%d \n",10 % 3);          // 1
	printf("%d \n", -10 % 3);		 // -1
	printf("%d \n", 10 % -3);		 // 1
	//3.不能除以0
}
#include<stdio.h>

int main()
{
	/*
	* exercise
	* 键盘录入一个三位数
	* 将其拆分为个位、十位、百位后
	* 打印在控制台
	*/
	printf("请输入一个三位整数:");
	int number;
	scanf("%d",&number);
	printf("个位是:%d \n",number%10);
	printf("十位是:%d \n", (number % 100) / 10);
	printf("百位是:%d \n", number / 100);

}

+的两种情况:1.数字相加

计算时,数据类型不一样不能直接运算,需要转成一样的,才能运算

double>float>long long>long>int>short>char

隐式转换:把一个取值范围小的,转成取值范围大的
short b = 10;
int a = b;

规则1:取值范围小的,和取值范围大的计算,小的会自动提升为大的,再进行运算

规则2:short char类型的数据在运算的时候,先提升为int ,再进行运算

不同的数据类型进行计算、赋值等操作,会触发隐式转换

强制转换:把一个取值范围大的,赋值给取值范围小的

格式:目标数据类型 变量名 = (目标数据类型)被强转的数据;

int b = 10;
short i = (short) b;

大的赋值给小的,需要强制转换。

弊端:有可能导致数据错误

+的两种情况:2.字符相加

short char类型的数据在运算的时候,先提升为int ,再进行运算

char类型转换为int类型 查询ASCII码表,每一个字符有一个唯一相对应的值

#include<stdio.h>

int main()
{
	//字符转数字
	// 'a' 'A' '0'
	printf("%d \n" , 'a');  //97
	printf("%d \n", 'A');	//65
	printf("%d \n", '0');	//48
}

自增自减运算符

符号

说明

++

变量中的值+1

--

变量中的值-1

++和--既可以放在变量的前边,也可以放在变量的后边

++或者--放在变量的前边或后边,单独写一行结果是一样的

int a = 10;
a++;
++a;
a--;
--a;
printf("%d \n",a);  //10
int a = 10;
int b = a++;			//先用后加	b = 10

int a = 10;
int b = ++a;			//先加后用	b = 11

赋值运算符

符号

说明

举例

=

直接赋值

int a = 10,将10赋值给a

+=

加后赋值

a += b,将a + b的值赋值给a

-=

减后赋值

a -= b,将a - b的值赋值给a

*=

乘后赋值

a *= b,将a * b的值赋值给a

/=

除后赋值

a /= b,将a / b的值赋值给a

%=

取余赋值

a %= b,将a % b的值赋值给a

#include<stdio.h>

int main()
{
	// +=
	int a = 10;
	int b = 20;
	a += b;
	printf("%d \n" ,a);		//30
	printf("%d \n", b);		//20
}

关系运算符(比较运算符)

符号

说明

结果

==

a == b 判断a 是否等于b

成立1(真)不成立0(假)

!=

a != b 判断a 是否不等于b

成立1(真)不成立0(假)

>

a > b 判断a 是否大于b

成立1(真)不成立0(假)

>=

a >= b 判断a 是否大于等于b

成立1(真)不成立0(假)

<

a < b 判断a 是否小于b

成立1(真)不成立0(假)

<=

a <= b 判断a 是否小于等于b

成立1(真)不成立0(假)

逻辑运算符

符号

作用

说明

&&

与(而且)

两边都是真,结果才是真(同时满足)

||

或(或者)

两边都是假,结果才是假(满足其一即可)

非(取反)

取反

#include<stdio.h>

int main()
{
	// 1:成立 0:不成立

	printf("%d \n" , 1 && 1);	//1
	printf("%d \n", 1 && 0);	//0
	printf("%d \n", 0 && 0);	//0
	printf("---------------------------\n");

	printf("%d \n", 1 || 1);	//1
	printf("%d \n", 1 || 0);	//1
	printf("%d \n", 0 || 0);	//0
	printf("---------------------------\n");

	printf("%d \n", ! 1);	//0
	printf("%d \n", ! 0);	//1
	printf("---------------------------\n");
}
#include<stdio.h>

int main()
{
	/*
	* 键盘录入一个两位整数,要求该数字不能包含7
	* 如果符合要求 输出1 如果不符合要求 输出0
	*/
	int num;
	printf("请输入一个二位整数:");
	scanf("%d",&num);

	int result = (num / 10 != 7) && (num%10 !=7);
	printf("%d \n",result);

	/*
	* 键盘录入一个两位整数,要求该数字不能包含7 而且不能是七的倍数
	* 如果符合要求 输出1 如果不符合要求 输出0
	*/
	int num2;
	printf("请输入一个二位整数:");
	scanf("%d", &num2);
	int result2 = (num2 / 10 != 7) && (num2 % 10 != 7) && num2 % 7 != 0;
	printf("%d \n", result2);
}

扩展:当左边的表达式能确定整个表达式的结果了,右边不参与运算(逻辑运算符的短路效果)

int a = 1,b = 5;
a>0 && ++b;
printf("a=%d,b=%d \n",a,b); // a=1 b=6  //左边为1 右边继续执行 

int a = 1,b = 5;
a>10 && ++b;
printf("a=%d,b=%d \n",a,b); // a=1 b=5   //左边为0 右边不再计算

三元运算符

格式:关系表达式 ? 表达式1 : 表达式2 ; //成立运行表达式1 不成立运行表达式2

#include<stdio.h>

int main()
{
	//获取两个变量中的较大值
	int a = 10;
	int b = 20;
	int c = a > b ? a : b;
	printf("%d \n",c);

	//获取三个变量中的最大值
	int a1 = 10;
	int b1 = 30;
	int c1 = 20;
	int d1 = (a1 > b1 ? a1 : b1) > c1 ? (a1 > b1 ? a1 : b1) : c1;
	printf("%d \n", d1);
}

逗号运算符(分隔符)

规则:

1.从左往右

2.最后一个子表达式的结果,是整个表达式的结果

3.优先级最低

运算符的优先级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值