为什么不能在函数声明中将全局变量作为参数传递

问题描述

为什么不能全局定义变量,然后将其传递给函数,以便可以在多个地方使用该变量?我尝试在下面的代码中执行此操作,但是编译器抛出错误

#inclued <stdio.h>
using namespace std;
int a = 0;
int b = 0;

int add(int a,int b){
    int c = a+b;
    return c;
}

int main(){
    int c = add(5,6);
    cout<<c;
    return 0;
}

解决方法

如果您声明全局变量,则无需在函数中再次声明,而是可以直接使用

 int a = 0;
 int b = 0;
 int add(){
    int c = a + b;
    return c;
 }

如果您真的想使用params声明函数,则不需要全局变量,因为该函数将使用您的param而不是您的全局变量。

,

首先,您不应该将代码作为图像发布,可以通过以下链接来了解更多信息。

Why can't I pass global Variables as parameters in function declaration

在代码中,您已经将ab声明为全局变量。但是在您的添加函数中,ab都是它们本地空间中的全新变量。这就是为什么更改其本地空间的值不会对这些全局变量产生任何影响的原因。