Sha*_*edi 2 c++ arrays function
using namespace std;
#include<iostream>
int passarr(int b[],int s)
{
//Some Modification in the array b
b[0]=0;
b[s-1]=0;
//Printing the array b
for(int i=0;i<s;i++)
{
cout<<b[i]<<" ";
}
cout<<endl;
}
int main()
{
int arr[100];
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
//Function call and passing array a to the function`
passarr(arr,n);
//Printing the array arr
for(int i=0;i<n;i++)
{
cout<<arr[i]<<" ";
}
}
Run Code Online (Sandbox Code Playgroud)
在这段代码中,我已经将数组传递arr给了函数passarr(),它执行了一些修改.问题是修改也反映在原始数组上.有没有办法将数组传递给函数,以便在执行函数中的任何操作时不会更改原始数组?
有没有办法将数组传递给函数,以便在执行函数中的任何操作时不会更改原始数组?
我能想到的选择:
在函数中制作数组的副本并修改副本.保持输入数组不变.
传递一个std::vector值.对参数的任何更改都不会影响调用函数中的对象.
如果在编译时知道数组的大小,则传递一个std::arrayby值.对参数的任何更改都不会影响调用函数中的对象.