问答详情
源自:3-10 运算符大比拼之优先级比较

求助,这个怎么算

int a=1,b=2,c=3,d=4;

printf("%d",a<b?a:c<d?a:b);

a<b?a:c<d?a:b是不是=(a<b)?(a):(c<d)?(a):(b)  初学请指正

提问者:风轩云冕 2015-07-12 15:09

个回答

  • 小玖so
    2015-08-05 15:30:50

    你在哪里看的? 我怎么觉得还是不对,(<)优先(?:)啊,   (a<b)?a:(c<d)?a:b    ;    1?a:1?1:b  ;       1?1:1结果是1  ;再算后面  1?1:2; 结果是1

  • 风轩云冕
    2015-07-14 14:44:01

    重新拆分一下是:a<b?a:c<d?a:b=(a<b?a:c)<d?a:b=1

  • 风轩云冕
    2015-07-14 14:39:31

    哦这样啊,谢谢了

  • 哈娃娃
    2015-07-12 17:16:23

    按顺序算,a<b?a:c,然后用其结果与d组合,计算下一组条件运算。