배열 요소를 함수에 전달하고 있습니다. 이 함수는 배열의 각 요소에 5를 더합니다. 나는 또한 정수를 전달하고 그것에 5를 추가하고있다 ... 비록 그것은 'value by call'함수 일 뿐이지 만 (예상되는) main()
에서 정수 dosn't의 값은 변하지 만 배열 요소는 변하지 않는다.값으로 호출하여 배열 요소 변경
나는 어떻게 그리고 왜 알 수 없습니까?
#include <iostream>
using namespace std;
void change(int x[],int y);
int main()
{
int sharan[]={1,2,3,4};
int a=10;
change(sharan,a);
for(int j=0;j<4;j++)
{
cout<<sharan[j]<<endl;
}
cout<<endl<<"a is : "<<a;
return(0);
}
void change(int x[],int y)
{
for(int i=0;i<4;i++)
{
x[i]+=5;
}
y+=5;
}
변수 –
의 값을 정수 a로 변경 한 후 y에 5를 추가하려면 포인터가 필요합니다. !!!!!!! –
'change (sharan, a) '를 호출하면 a의 값의 사본이 만들어져 함수 내에서 사용됩니다. (이 함수는 괜찮 았지만 아무 영향을 미치지 않는 외부 'a'와는 아무런 관련이없는 복사본에 5를 할당합니다.)'void change (int x [], int & y) {...}'. 그러면 y는 a의 별칭이되고 y의 변경은 a의 변경과 같습니다. –