Я написал функцию, содержащую массив в качестве аргумента, и вызовите его, передав значение массива следующим образом.
void arraytest(int a[])
{
// changed the array a
a[0]=a[0]+a[1];
a[1]=a[0]-a[1];
a[0]=a[0]-a[1];
}
void main()
{
int arr[]={1,2};
printf("%d \t %d",arr[0],arr[1]);
arraytest(arr);
printf("\n After calling fun arr contains: %d\t %d",arr[0],arr[1]);
}
Я обнаружил, что, хотя я вызываю функцию arraytest()
, передавая значения, исходная копия int arr[]
изменяется.
Не могли бы вы объяснить, почему?