以下程序的输出?
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