C 在没有参数的情况下,如何将值传递到函数中

C 在没有参数的情况下,如何将值传递到函数中,c,global-variables,C,Global Variables,我无法理解程序是如何工作的,所以我在计算机上运行了它,并得到了输出: the sum of 5 to 4 is 10 我不理解在函数调用期间如何将nMax传递到sumInts函数(空参数),但是n的值取自全局变量。这是唯一一种方法,它可以增加到5,然后求和到10 提前谢谢 #include <stdio.h> #include <stdlib.h> void sumInts(); int n=0; int nMax = 0; int sum = 0; int ma

我无法理解程序是如何工作的,所以我在计算机上运行了它,并得到了输出:

the sum of 5 to 4 is 10
我不理解在函数调用期间如何将
nMax
传递到
sumInts
函数(空参数),但是
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++;
    }
}
#包括
#包括
无效sumInts();
int n=0;
int nMax=0;
整数和=0;
int main(int argc,char*argv[]){

如果(argc没有参数传递

此外,
while
for
循环共享相同的全局变量


(n=1;n
nMax
实际上根本没有被传递到
sumInts
中-它被称为全局变量。全局变量是在任何函数外部定义的变量,可以在任何函数内部使用,并在函数调用之间保留其值。由于
nMax
是全局变量,因此在主函数中设置它会发生变化它在
sumits
中的值,并导致程序按您所看到的方式运行。但这通常被认为是有点糟糕的风格,应该避免,以防止出现错误。

nMax
也是全局的,就像
n
一样。谢谢大家。我想我现在明白了。我只是想确认一下,这是因为当我分配参数v时int main函数中的值转换为nMax已将nMax的全局值更改为4。如果我错了,请纠正我。如果我的答案解决了您的问题,请随意接受。