这里的指针错在哪里呢?
#include <stdio.h>
#define n 10
#define m 3
int main()
{
int change(int *);
int i,a[100],*p;
printf("please input %d numbers:\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]); //输入原次序。
p=a;
change(p); //调用函数重新排序
printf("the new order:\n");
for(i=0;i<n;i++)
printf("%-3d",*(p+i)); // 输出新次序
printf("\n");
system("pause");
return 0;
}
int change(int *p)
{ int *b; //这里的指针b用法错在哪里呢?
int i;
for(i=0,b=p;i<n;i++)
*(b+i)=*(p+i);
for(i=0;i<m;i++)
*(p+i)=*(b+n-m+i);
for(i=m;i<n;i++)
*(p+i)=*(b+i-m);
}
要是把change函数里的指针b形式都改成数组形式,就可以顺利通过了。奇怪?!我错在哪里呢?麻烦解答。谢啦。
指针老是用错。郁闷。
[解决办法]