下面的代码更改了函数检查中arr的值,并打印出"2"的值,即使我没有在指针中的check函数中传递数组.怎么可能?
#include <stdio.h>
#include <stdlib.h>
void check(int n,int array[]);
int main()
{
int arr[]={1,2,3,4};
int i;
check(4,arr);
for(i=0;i<4;i++){
printf("%d\n",arr[i]);
}
return 0;
}
void check(int n,int array[])
{
int j=0;
while(j<n){
array[j]=2;
j++;
}
}
Run Code Online (Sandbox Code Playgroud)