以下程序的输出?
#include
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)
说明:将参数传递给函数,将评估每个参数的值,然后再传递给函数。
从左到右或从右到左的参数评估顺序是什么?
如果评估顺序是从左到右,则输出应为5 6 7,如果评估顺序是从右到左,则输出应为7 65。不幸的是,C标准没有定义固定的顺序。编译器可以选择从左到右进行评估。
因此,输出取决于编译器。这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。