C语言 ——— 条件操作符(三目操作符);逗号表达式

目录

exp1 ? exp2 : exp3 --- 条件操作符

exp1, exp2, exp3, ……expN --- 逗号表达式


exp1 ? exp2 : exp3 --- 条件操作符

条件操作符逻辑:

判断exp1的真假,exp1为真,exp2计算,exp3就不计算

exp1为假,exp2不计算,exp3计算

如果exp1的结果为真,那么exp2就是整个表达式的结果

如果exp1的结果为假,那么exp3就是整个表达式的结果

 上代码演示:

利用if和else语句求两个整数中的较大值:

#include<stdio.h>
int main()
{
	int a = 3;
	int b = 5;

	if (a > b)
		printf("Max = %d", a);
	else
		printf("Max = %d", b);

	return 0;
}

 利用条件操作符求两个整数中的较大值:

#include<stdio.h>
int main()
{
	int a = 3;
	int b = 5;

	int Max = a > b ? a : b;
	printf("Max = %d\n", Max);

	return 0;
}

代码分析:int Max = a > b ? a : b;

a大于b吗,a大于b的话a就是整个表达式的结果,a小于b的话b就是整个表达式的结果

代码验证:


exp1, exp2, exp3, ……expN --- 逗号表达式

 逗号表达式逻辑:

逗号表达式是用逗号隔开的多个表达式 

从左向右计算,整个逗号表达式的结果是最后一个表达式的结果

 代码例子:

#include<stdio.h>
int main()
{
	int a = 1;
	int b = 2;

	int c = (a > b, a = b + 10, a, b = a + 1);
	
	printf("a = %d\n", a);
	printf("b = %d\n", b);
	printf("c = %d\n", c);

	return 0;
}

 代码分析:int c = a > b, a = b + 10, a, b = a + 1;

a > b:只是比较,没有赋值或改动

a = b + 10:b初始值为2,2+10的结果赋值给a,a的值就被赋值为12

b = a + 1:a被赋值为12,12+1的结果赋值给b,b的值就被赋值为13

由逗号表达式逻辑得知:整个逗号表达式的结果是最后一个表达式的结果,所以c为13

所以结果为:a = 12,b = 13,c = 13

代码验证:

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值