我认为输出应该是 10 10,但它是 10 1,我不知道为什么。
我尝试分配 arr[0]=55,结果我变成了 55,我也不知道为什么。很高兴得到解释
void foo(int arr[])
{
int i=10;
arr=&i;
printf("%d",arr[0]);
}
int main()
{
int a[4]={1,2,3,4};
foo(a);
printf("%d",a[0]);
return 0;
}
我的想法:1010 实际 o/p= 101
最佳答案
使用arr=&i
,你改变数组的局部指针,让它指向别的地方;但您不会更改原始数组的内容。
写 arr[0]=10
,它应该给你 1010
输出。
关于谁能说为什么传递给函数时数组没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56859134/