gpt4 book ai didi

c - 为什么我的程序从右到左计算参数?

转载 作者:太空狗 更新时间:2023-10-29 17:18:56 24 4
gpt4 key购买 nike

我正在学习 C,所以我尝试了下面的代码并得到了 7,6 而不是 6,7 的输出。为什么?

#include <stdio.h>
int f1(int);
void main()
{
int b = 5;
printf("%d,%d", f1(b), f1(b));
}
int f1(int b)
{
static int n = 5;
n++;
return n;
}

最佳答案

在 C 语言中,函数参数的求值顺序是未指定。(注意这里没有未定义的行为;例如,不允许同时求值。)

通常参数的计算是从右到左,或从左到右。

根据经验,如果函数有副作用(就像您的情况一样),或者如果您两次传递相同的参数,则不要在函数参数列表中调用同一个函数两次要修改的调用站点(例如传递指针)。

关于c - 为什么我的程序从右到左计算参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56559231/

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