📜  C |功能|问题11

📅  最后修改于: 2021-05-25 22:56:24             🧑  作者: Mango

以下程序的输出?

#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基础课程》。