关于优先级
#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();
}
2006-02-18 15:39
2006-02-18 15:48
2006-02-18 16:14
2006-02-18 16:22
2006-02-18 16:43
2006-02-18 17:08
好象是 第一个 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
对否.请指教

2006-02-18 17:30
2006-02-18 17:36
? : 是自右向左结合 先判断括号里 C为 真..则括号里的值为 A 然后 0为假 则 取A值 不对吗

2006-02-18 17:39
2006-02-19 10:24