Передавая массив в качестве аргумента функции в C

Я написал функцию, содержащую массив в качестве аргумента, и вызовите его, передав значение массива следующим образом.

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 []

Не могли бы вы объяснить, почему?

69
задан Jonathan Leffler 3 March 2015 в 07:48
поделиться