|
|
|
|
 奇怪的操作符优先级问题 - dreamume [ 2007-03-22 12:09 | 634 byte(s)]
 Re: 奇怪的操作符优先级问题 - scutanjun [ 2007-03-22 14:14 | 94 byte(s)]
 Re: 奇怪的操作符优先级问题 - dreamume [ 2007-03-22 15:26 | 44 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
遇到了一个奇怪的问题,学了几年C语言,看来基础还是不牢靠阿!
这是我的测试代码:
int main()
{
int b = 3, c = 5;
int a = ( 1 == 1 || b > c ? b : c ); // 语句1
printf( "%d
", a );
}
我本以为打印结果是1,但打印出来的是3。如果把语句1稍微改变一下:
int a = ( 1 == 0 || b > c ? b : c ); // 打印出5
int a = ( 1 == 1 || ( b > c ? b : c ) ); // 打印出1
我始终无法解释为什么结果是这样?是由于运算符优先级的影响?
哪位大侠帮忙给个解释!谢谢!
|
|
|
[Original]
[Print]
[Top]
|
|
|