C语言第二天#S1E9E10

算数运算符:

除法运算符和求余运算符特别注意。此外,还有单目和双目。

目:当+表示加的时候,有两个操作数,此时为双目。当表示一个数为正数的时候,只有一个操作数,为单目。

C语言中有唯一一个三目运算符:?:

变量a里储存的值+字符b(参与运算的是字符b所对应的ASCII码的值)+变量a的字符b次方*3/4+5

运算付的优先级:数字越小优先级越高

#include <stdio.h>
#include <math.h>

int main()
{
	int i,j,k;
	
	i = 1 + 2;
	j = 1 + 2 * 3;
	k = i + j + -1 + pow(2,3);
	
	printf("i = %d\n",i);
	printf("j = %d\n",j);
	printf("k = %d\n",k);
	return 0;
 } 

当两个操作上数的类型不同,进行运算之前要进行数据转换。编译器会将占用坑位较小的转成坑位较大的。

一个浮点型的数强制为整型输出就会打印出错误的数字。

#include <stdio.h>

int main()
{
	printf("整型输出 = %d\n",1+2.0);
	printf("浮点型输出 = %f\n",1+2.0);
	return 0;
 } 

在数据前加上(int)就可以强制转换数据类型

将浮点数强制转化成整数会直接将小数后的舍去。

大坑→小坑

关系运算符:双目,得到的值为逻辑值

关系表达式:返回一个逻辑值0/1

逻辑运算符

任何非0的数告诉编译器,编译器都会认为是真。

#include <stdio.h>

int main()
{
	int a=5,b=3;
	
	printf("%d\n",3>1 && 1<2);
	printf("%d\n",3+1 || 2==0);
	printf("%d\n",!(a+b));
	printf("%d\n",!0 + 1 <1 || !(3+4));
	printf("%d\n",'a'-'b' && 'c');

	return 0;
} 

11001

短路求值

#include <stdio.h>

int main()
{
	int a=5,b=3;
	
	(a=0) && (b=5);
	printf("a=%d,b=%d\n",a,b);
	
	(a=1) || (b=5);
	printf("a=%d,b=%d\n",a,b);
	
	return 0;
} 

第一行:首先&&是从左往右的结合性,先进行左边()里的运算,将0赋值给a,此时&&左边为0,已经确定了整个逻辑的值,不管右边是0还是1都不影响结果,所以右边的式子根本不会进行运算,即5没有赋值给b,b还是原来的值3。

第二行:首先||的结合性也是从左到右。先进行左边的运算,a=1确定后整个式子的逻辑值就确定了,所以右边的式子不会进行运算,b还是原来的值3。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值