我见过有关 i++++i 等的问题,但我有一个小问题,有些不同。 假设我有这样的事情:
printf("%d %d", P, P);
P 是一个函数
int P(){
printf("HEY");
return 0;
}
将打印什么 嘿嘿00还是嘿0嘿0?
最佳答案
运行它即可。
这个程序:
#include <stdio.h>
int P(){
printf("HEY");
return 0;
}
int main() {
printf("%d %d", P(), P());
return 0;
}
输出:
HEYHEY0 0
为什么?在实际输入 printf 的代码之前,将对参数进行求值(调用 P)。
编辑:根据@Shafik下面的说法,C标准不保证参数求值的顺序,所以如果有两个具有不同字符串的函数,这些字符串的顺序将不会不可预测。
关于c - printf 中的评估顺序和打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22792141/