注册 登录
编程论坛 C++教室

请教C++中关于条件操作符的语句!

jy_lance 发布于 2010-08-24 11:12, 1259 次点击
我正在自学C++,今天在书上看到这样一个语句,实在弄不懂,还请各位大虾们帮我解释一下,越详细越好,谢谢了!
int max = i > j
? i > k ? i : k
: j > k ? j : k;
6 回复
#2
lscalin2010-08-24 11:32
根据对应操作符的优先级来看
#3
蛤蟆VS天鹅2010-08-24 12:42
手术室
#4
蛤蟆VS天鹅2010-08-24 12:46
?:是条件操作符(三元操作符)。

int max = i > j ? i > k ? i : k : j > k ? j : k;

首先这题要搞清是几个?:操作符,及?和:配对问题。

?:具体算法如下:

a?b:c    先对a进行求值;如果不等于零,就求值并返回b;否则,就求值并返回c
#5
towhee2010-08-24 13:00
int max = i > j ? (i > k ? i : k) :( j > k ? j : k);
应该是这样嵌套的吧
#6
pangding2010-08-24 14:08
嗯,?: 是右结合的。而且优先级比 > 低。
向楼主那么断行写,可读性会好一点。但加上括号也没什么坏处,这种多重 ?: 不是很常见,如果要用,加括号是好习惯。
#7
jy_lance2010-08-24 20:54
谢谢各位了!这其实是一个求最大值的语句!
1