C语言 设a=1, b=2, c=3,d=4,则表达式a<b?a:c<d?a:d的结果为何是

C语言设a=1, b=2, c=3,d=4,则表达式a&lt;b?a:c&lt;d?a:d的结果为何是1啊
2024-11-14 03:59:37
推荐回答(5个)
回答1:

是先运算最右边的。 ?:是条件表达式结合方向是从右向左,这是个三目运算符

即a

我才是正解,专门扒拉出书来看的,答案是一样的但是优先级不一样,我参考的书是C语言程序设计第三版 何钦铭,颜晖主编(P132P139)!!

回答2:

a=1, b=2, c=3,d=4,求:a(1)先看a现在a=1,b=2,a
(2)因为a的值是1,所以结果就是:1
(3)如果不成立才计算c

回答3:

这个是C语言中的条件运算符(?:)它是对第一个表达式作真/假检测,然后根据结果返回另外两个表达式中的一个。
<表达式1>?<表达式2>:<表达式3>
在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式2的值;如果为假,则返回表达式3的值。
你这个表达式中,a你的表达式可以视为:(a

回答4:

从左往右看,因为a所以返回1.

回答5:

(a等同于
if (a{
    return a;
}else
{
    if (c    {
        return a;
    }else
    {
        return d;
    }
}
所以很明显a