上机明明就是 49。真不知道你们是怎么算到5的
#include<stdio.h>
main(){
int x=1,y=0,z;
z=x-->(y+x)?5:25>y++?'1':'2';
printf("%d\n",z);
}
大家看清楚他是'1'和'2'他表示的意思是字符1和2。不是数字1和2。字符1的值是49。字符2的值是50。第一步是 25和y++来比。因为25>0(注意y.他是运行完后才自+1的)所以条件为真.取'1' 也就是49.....然后就是x-->(y+x)?5:49 因为y在前面已经自+1了.所以这个时候的y为1 然后运算
1>(1+1)....条件为假.就取后面的数.也就是字符1的值.他在以%d的形式输出就是49了......运行完后x=0 y=1.我上机设置断点调试过了。不信的各位可以去试试.有兴趣进QQ群来讨论的,请加7976395
我和热情依然等着大家来.欢迎..最好还是数据结构高手。更加欢迎