代码中的问号以及冒号的作用min = temp < strlen(slogan[min]) ? i : min;
for (i = 0; i < NUM; i++){
printf("%s\n", slogan);
temp = strlen(slogan);
min = temp < strlen(slogan) ? i : min;
max = temp > strlen(slogan) ? i : max;
}
其中问号和冒号的完整意思是什么,有点懵{:9_220:} 本帖最后由 jackz007 于 2019-7-19 10:18 编辑
这是 C 语言的三目操作符
min = temp < strlen(slogan) ? a : b ;
实际上等价于下面的语句:
if (temp < strlen(slogan)) {
min = a
} else {
min = b
}
下面的代码与楼主贴出的代码片段是等效的:
for (i = 0; i < NUM ; i ++) {
printf("%s\n", slogan) ;
temp = strlen(slogan) ;
if temp < strlen(slogan) min = i ; // min 的值只在 temp < strlen(slogan) 时 min = i,否则,维持原值
if temp > strlen(slogan) max = i ; // max 的值只在 temp > strlen(slogan) 时 max = i,否则,维持原值
}
temp < strlen(slogan) ? i : min;
这是一种特殊的操作语句,你可以理解为下面这个形式:
条件 ? 选项A :选项B
前面的条件判断是否为真,如果为真返回选项A,如果为假返回选项B shuofxz 发表于 2019-7-19 13:31
这是一种特殊的操作语句,你可以理解为下面这个形式:
条件 ? 选项A :选项B
谢谢!!!
页:
[1]