Когда я запускаю эту программу -
#include <stdio.h>
void inc( int num[], int n)
{
int i;
n++;
for(i=0;i<10;i++)
num[i]++;
}
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int a=2;
inc (arr, a);
int i;
for(i=0;i<10;i++)
printf("%d ", arr[i]);
printf("\n%d ", a);
return 0;
}
Я получаю вывод -
2 3 4 5 6 7 8 9 10 1
2
Я понимаю, почему int не изменяется, но я не понимаю, почему массив получаетизменилось, так как я не использовал указатели для вызова массива.Я знаю, что функция сделает другую копию n и назначит n = a, и все изменения произойдут только с n, и a останется неизменным.Почему массив меняется?