关于优先级
#include <stdio.h>
void main()
{
float a=2.8,b=1.0,c=4;
clrscr();
printf("%f\n",a>(b>c?b:c)?a:(b>c?b:c)); /*这句优先级我明白*/
printf("%f\n",a> b>c?b:c ?a: b>c?b:c ); /*但这句优先级我就不明白了,高手请指示*/
getch();
}
#include <stdio.h>
void main()
{
float a=2.8,b=1.0,c=4;
clrscr();
printf("%f\n",a>(b>c?b:c)?a:(b>c?b:c)); /*这句优先级我明白*/
printf("%f\n",a> b>c?b:c ?a: b>c?b:c ); /*但这句优先级我就不明白了,高手请指示*/
getch();
}
好象是 第一个 printf是 c=4
第二个 printf是 a=2.8
看看 ? :的结合性 和优先级
第二个 写出来就是 (a>b>c)? b:(c? a:(b>c? b:c))
=0? b:(c? a:c)
=0? b:a
对否.请指教
? : 是自右向左结合 先判断括号里 C为 真..则括号里的值为 A 然后 0为假 则 取A值 不对吗