《C和指针》笔记19: 条件操作符

条件操作符接受三个操作数。它也会控制子表达式的求值顺序。下面是它的用法:

c 复制代码
expression1 ? expression2 : expression3

条件操作符的优先级非常低,所以它的各个操作数即使不加括号,一般也不会有问题。但是,为了清楚起见,人们还是倾向于在它的各个子表达式两端加上括号。

给个例子说明它的用法:

c 复制代码
b = a > 5 ? 3 : 20;

可以读作"a是不是大于5?如果是,就执行b-6,否则执行c/2",它等价于下面的语句

c 复制代码
if (a > 5)
	b = 3;
else
	b = 20;

这好像看不出什么优点,但是如果是下面的语句

c 复制代码
if(a > 5 )
	b[ 2 * c + d( e / 5 ) ] = 3;
else
	b[ 2 * c + d( e / 5 ) ] = -20;

数组的下标要写两次,显得很繁琐,写成下面的语句反而简洁,而且不容易出错:

c 复制代码
b[ 2 * c + d( e / 5 ) ] = a > 5 ? 3 : -20;

参考

  1. 《C和指针》
相关推荐
笨笨饿2 小时前
20_Git 仓库使用手册 - 初学者指南
c语言·开发语言·嵌入式硬件·mcu·学习
C++ 老炮儿的技术栈2 小时前
分享一个安全的CString
c语言·c++·windows·git·安全·visual studio
爱编码的小八嘎3 小时前
C语言完美演绎6-2
c语言
blueSatchel6 小时前
I2C驱动学习
linux·c语言
爱编码的小八嘎6 小时前
C语言完美演绎6-12
c语言
小Tomkk6 小时前
怎么配置 Visual Studio Code 配置 C/C++
c语言·c++·vscode
算法鑫探7 小时前
C语言实战:学生成绩统计与分析
c语言·数据结构·算法·新人首发
qq_448011167 小时前
C语言的结构体
c语言
计算机安禾8 小时前
【数据结构与算法】第18篇:数组的压缩存储:对称矩阵、三角矩阵与稀疏矩阵
c语言·开发语言·数据结构·c++·线性代数·算法·矩阵
maverick_1118 小时前
【FPGA】关于两个数相加的“坑”
c语言·matlab·fpga开发