yixinwenxin 发表于 2021-5-25 23:51:27

三目运算

#define MIN(A,B) A>B?A:B
A > B 则取A的值,否则取B;

#define MIN(A,B) A<B?A:B
A < B 则取A的值,否则取B;

为什么都取A的值?
拐不过来这个弯
.............................无语望天中.............................

Py与C。。。 发表于 2021-5-25 23:51:28

本帖最后由 Py与C。。。 于 2021-5-26 20:54 编辑

把三目变成ifelse也许明白一些
1.if (a>b) //如果a比b大
{
return a; //返回a
}
else //即a<b
{
return b;
}

2.if(a<b) //如果a小于b
{
return a; //返回a
}
else
{
return b;
}

把三目转化为if-else:
变量1>变量2?变量一:变量2
if(变量1>变量2)
{
return 变量一
}
else
{
return 变量2
}

lei1996 发表于 2021-5-26 00:15:58

那就别拐弯了白明显第一个应该命名MAX

万千只cnm 发表于 2021-5-26 18:54:11

? 相当于一个判断啊    若为真1就执行:前的表达式
A>B?A:B-->a是否大于b若是 执行冒号前的表达式 0 则执行冒号后
你这个表达式没什么意义结果不保存   A或B的值并没有改变也没有保存
Z=   A>B?A:B   -->把三目运算符的结果值(A或B) ,赋值给z

#define 只是机械的替换   
怎么会不懂呢
页: [1]
查看完整版本: 三目运算