在 C++ 函数中更改数组 [重复]

问题描述 投票:0回答:0

我正在学习 C++,我很困惑为什么函数中发生的变化会反映在 main 中。谁能说出如何在不反映在主模块中的情况下更改函数中的数组..

感谢帮助

#include <iostream>
using namespace std;

void function1(int x[],int n){
    for(int i=0;i<n;[enter image description here](https://i.stack.imgur.com/G17A6.png)i++){
        x[i]=0;
    }
}

int main(){
    int n;
    cout<<"Enter the number of terms :";
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++){
        cin >> a[i];
    }
    function1(a,n);
    //after calling a function
    //printing an array declared in main 
    for(int i=0;i<n;i++){
        cout<<a[i]<<endl;
    }
    return 0;
}

我写了一段代码来检查主模块和功能模块中数据的变化。调用函数后,我认为在调用函数之前输入到数组中的数据不会改变。然而,数据在功能上的变化,体现在主模块

c++ arrays function global-variables local-variables
© www.soinside.com 2019 - 2024. All rights reserved.