C语言条件操作符(? :)——三分钟上手

别再把 if-else 写满屏了,这个"三目运算符"能让你代码瘦身。

一句话说清

条件操作符就是 ? :,它是C语言唯一的一个三目运算符。

作用:根据条件真假,从两个值中选一个。


基本语法

复制代码
条件 ? 表达式1 : 表达式2

条件为真(非0)→ 取 表达式1

条件为假(0)→ 取 表达式2

举个栗子 🌰

复制代码
int a = 10, b = 20;
int max = (a > b) ? a : b;   // max = 20

等价于:

复制代码
int max;
if (a > b) max = a;
else max = b;

一眼看出,三目写法更紧凑。

常见使用场景

1. 给变量赋二选一的值

复制代码
int age = 17;
char* status = (age >= 18) ? "成年" : "未成年";

2. 在printf里直接输出

复制代码
printf("%s\n", score >= 60 ? "及格" : "不及格");

3. 简化简单判断

复制代码
int x = 5;
(x > 0) ? printf("正数") : printf("非正数");

注意(坑)

类型要一致:两个表达式的类型尽量相同,否则隐式转换可能带来意外。

不要嵌套太深:a ? b : c ? d : e 虽然可以,但可读性暴跌,不推荐。

条件部分优先:建议用括号把条件括起来,避免优先级混乱。

与 if-else 怎么选?

|------------|---------|
| 场景 | 推荐 |
| 简单二选一赋值/输出 | ?: |
| 复杂分支、多条语句 | if-else |


总结

条件操作符 = 简洁的 if-else

用它让你的代码更精炼,但别滥用------清晰 > 简短。

好了,去给你的代码减减肥吧!


如果你觉得有帮助,欢迎点赞、收藏、评论,让更多人看到!

相关推荐
Zwawa14 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式
Fruiticecake14 小时前
C 程序员速通现代 C++(一):lambda、std::function、移动语义与智能指针
c语言·c++
田甲14 小时前
做一款 Type-C 母座读卡器:GL3224 双卡方案实测
c语言·开发语言
·present·19 小时前
CSAPP(lecture 13_02 Linking)
c语言·c++
wuyk5551 天前
Keil工具链-第05讲-启动文件与__main到底做了什么
c语言·stm32·单片机·嵌入式硬件·物联网
Navigator_Z2 天前
LeetCode //C - 1317. Convert Integer to the Sum of Two No-Zero Integers
c语言·算法·leetcode
冻柠檬飞冰走茶2 天前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
Hhy_11072 天前
《C++深度解构06》手撕 string —— 从底层内存管理到深浅拷贝彻底吃透
c语言·开发语言·c++·学习·visual studio
曦樂~2 天前
Cpp面筋
c语言·c++
HUANGZHENXUAN1233 天前
最大子矩阵和:从 O(n⁴) 到 O(n³) 的列压缩 + Kadane
c语言·前端