?: 是C语言中的三元运算符(也叫条件运算符)

?: 是C语言中的三元运算符(也叫条件运算符),它是一个非常有用的条件判断语法。

语法格式

条件表达式 ? 表达式1 : 表达式2

工作原理

  • 如果条件表达式为(非0),返回表达式1的值
  • 如果条件表达式为(0),返回表达式2的值

在你的代码中的应用

islower(s[i]) ? toupper(s[i]) : s[i]

这行代码的含义是:

  • 条件islower(s[i]) - 检查字符是否为小写字母
  • 如果为真:返回 toupper(s[i]) - 转换为大写字母
  • 如果为假:返回 s[i] - 保持原字符不变

等价的if-else写法

// 使用三元运算符(简洁)
printf("%c", islower(s[i]) ? toupper(s[i]) : s[i]);

// 等价的if-else写法(冗长)
if (islower(s[i])) {
    printf("%c", toupper(s[i]));
} else {
    printf("%c", s[i]);
}

其他常见例子

// 找出两个数的最大值
int max = (a > b) ? a : b;

// 判断奇偶
char* result = (num % 2 == 0) ? "偶数" : "奇数";

// 设置默认值
int value = (input != 0) ? input : 10;

三元运算符的优势是代码简洁,特别适合简单的条件赋值操作。

posted @ 2025-08-31 20:56  量子我梦  阅读(39)  评论(0)    收藏  举报