C语言 ——— 逻辑操作符

目录

&& --- 逻辑与操作符

|| --- 逻辑或操作符 


&& --- 逻辑与操作符

逻辑与操作符有并且的意思,一般用于判断语句中

逻辑与操作符运行规则是都要为真,才会继续执行或计算

360笔试题:

有关前置++(--),后置++(--)的知识请见:单目操作符-CSDN博客

#include<stdio.h>
int main()
{
	int i = 0, a = 0, b = 2, c = 3, d = 4;
	i = a++ && ++b && d++;

	printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);

	return 0;
}

代码分析:a++ && ++b && d++

a++:a初始值为0,后置++,先计算后++,0为假,那么&& ++b && d++就不会计算

所以结果为:a = 1,b = 2,c = 3,d = 4

代码验证:

得出结论:逻辑与操作符左边为假,右边就不会计算 


将a的初始值更改为1,会有怎样的结果?

#include<stdio.h>
int main()
{
	int i = 0, a = 1, b = 2, c = 3, d = 4;
	i = a++ && ++b && d++;

	printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);

	return 0;
}

代码分析:a++ && ++b && d++

a++:a初始值为1,后置++,1为真(一切非0都为真),所以要计算 && ++b

a++ && ++b:a后置++后为2,b初始值为2,前置++后为3,a++ && ++b整体的结果同样为真,在C语言中,真的固定值为1,所以&& d++也要计算

a++ && ++b && d++:d初始值为4,后置++,执行完此表达式后为5

所以结果为:a = 2,b = 3,c = 3,d = 5

代码验证:


|| --- 逻辑或操作符 

逻辑或操作符有或者的意思,只要有一个表达式为真即可

相关代码题:

#include<stdio.h>
int main()
{
	int i = 0, a = 0, b = 2, c = 3, d = 4;
	i = a++ || ++b || d++;

	printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);

	return 0;
}

代码分析:a++ || ++b || d++

a++:a初始值为0,后置++,逻辑与只要有一个为真即可,所以要判断 || ++b是否为真

a++ || ++b:a后置++后为1,b初始值为2,前置++后为3,|| ++b为真,所以 || d++就不会计算

所以结果为:a = 1,b = 3,c = 3,d = 4

代码验证: 

得出结论:逻辑或操作符左边为真,右边不再计算 


将a的初始值更改为1,会有怎样的结果?

#include<stdio.h>
int main()
{
	int i = 0, a = 1, b = 2, c = 3, d = 4;
	i = a++ || ++b || d++;

	printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);

	return 0;
}

代码分析:

a++:a初始值为1,后置++,a为真,那么|| ++b || d++都不会计算,表达式结束后a为2

所以结果为:a = 2,b = 2,c = 3,d = 4

代码验证:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值