C |功能|问题11

以下程序的输出?

null

#include <stdio.h>
int main()
{
int i = 5;
printf ( "%d %d %d" , i++, i++, i++);
return 0;
}


(A) 7 6 5 (B) 5 6 7 (C) 7 7 7 (D) 编译器相关 答复: (D) 说明: 将参数传递给函数时,每个参数的值在传递给函数之前都会进行求值。

参数的评估顺序是什么?从左到右还是从右到左? 如果评估顺序是从左到右,那么输出应该是567,如果评估顺序是从右到左,那么输出应该是765。不幸的是,C标准没有定义固定的顺序。编译器可以选择从左到右进行计算。

因此,输出依赖于编译器。 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享