gpt4 book ai didi

c - 如何在没有参数的情况下将值传递给函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:27:25 25 4
gpt4 key购买 nike

我不知道这个程序是如何工作的,所以我在电脑上运行它并得到了输出:

the sum of 5 to 4 is 10

我不明白如何在函数调用期间将 nMax 传递到 sumInts 函数(空参数),但是采用了 n 的值来自全局变量。这是 n 可以递增到 5 并求和为 10 的唯一方法。

提前致谢

#include <stdio.h>
#include <stdlib.h>

void sumInts();

int n=0;
int nMax = 0;
int sum = 0;

int main(int argc, char* argv[]) {
if (argc<2) {
printf("Usage: ex2 7 \n");
exit(-1);
}
nMax = atoi(argv[1]);

for (n=1;n<nMax;n++) {
sumInts();
printf("The sum from %d to %d is %d \n" , n , nMax, sum);
}

return 0;
}

void sumInts() {
while (n<= nMax) {
sum = sum+n;
n++;
}
}

最佳答案

nMax 实际上根本没有传递到 sumInts - 它是所谓的全局变量。全局变量是在任何函数外部定义的变量,可以在任何函数内部使用,并在函数调用之间保留其值。由于 nMax 是全局的,在 main 函数中设置它会更改它在 sumInts 中的值,并导致程序如您所见运行。不过,这通常被认为有些糟糕的风格,可能应该避免以防止错误。

关于c - 如何在没有参数的情况下将值传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49079993/

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