急求一道简单C语言题目解答过程!!!

main()
{ int a=666,b=888;
printf("%d\n",a,b);
}
程序运行后的输出结果是( )
A)错误信息 B)666 C)888 D)666,888

用程序执行输出888 不是很明白原理 望高手解答一下

第1个回答  2008-04-16
一楼fantasydb理解有误。
printf()函数对输出表中的各量求值的顺序是自右向左进行的,但是输出的顺序还是从左向右。
这是杨健霑主编的《C语言程序设计》书上57页的原话。
打印出来的结果应该是666而不是888.
第2个回答  2008-04-16
你可以这样理解:
把a,b看成是逗号运算式 ,它的结果为b的值,而printf输出的是这个式子的值,即b值本回答被提问者采纳
第3个回答  2008-04-16
printf函数是从右向左执行的,只输出一个结果,所以只输出b值,而不是按照先输出a,再输出b,这个顺序执行的
第4个回答  2008-04-16
没有什么好解释的
这个句子本来就是不正确的,就看编译器是如何理解了
我用VC6,输出的B)666
相似回答