我有一个函数(从教程)为什么数组指针打印不正确?
int* func(int *arr, int n){
if(n==1 || n==0)
return arr;
else{
int temp=arr[0];
arr[0]=arr[n-1];
arr[n-1]=temp;
return func(++arr,n-2);
}
}
我干运行它,得到它会扭转阵列,非常好。我得到的结果时,使用这段代码
int x[]={1,2,3,4,5,6,7,8,9};
int i;
func(x,9);
for(i=0;i<9;i++)
{
printf("%d\n",x[i]);
}
但在使用指针下面的代码
int x[]={1,2,3,4,5,6,7,8,9};
int* p;
p = func(x,9);
for(i=0;i<9;i++)
{
printf("%d\n",*(p+i));
}
弱时请说明你回答让垃圾值我预期。
哪里指针通过FUNC点回来了? – Broseph
@Broseph'p = func(x,9);'也许?我不确定。 –
查看func的代码,并按照指针arr。它会发生什么? – Broseph