gpt4 book ai didi

c - printf 中的评估顺序和打印

转载 作者:行者123 更新时间:2023-11-30 21:47:37 24 4
gpt4 key购买 nike

我见过有关 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com