编写一个C语言程序,

来源:百度知道 编辑:UC知道 时间:2024/05/11 13:23:21
编写一个C语言程序,用于接收数组的值,并通过指向数组的指针将它以左右反转的次序输出,要求用指向数组的指针实现。
#include"stdio.h"
void main()
{
int s[10]={0,1,2,3,4,5,6,7,8,9};
int i;
int *p;
p=s+10;
for(i=0;i<10;i++)
{
printf("%d ",s[i]);
}
printf("\n");
for(i=0;p>=0,i<10;i++)
{
p--;
printf("%d ",*p);
}

printf("\n");
}
这是我做的。运行也可以但是好象p=s+10;说不过去,有那位大虾指点一下?

main()
{
int s[10];
int i;
int *p=s+9;
for(i=0;i<10;i++)
scanf("%d",&s[i]);
while(p!=(s-1))
{
printf("%d\t",*p);
p--;
}
getch();
}

回答补充,一定是+9....+10就越界了

摆脱怎么p=s+10有什么说不过去的 那么*p=*(p+i); 你就说得过去了
P里面现在放的是s[9]的地址也就是最后的一个,不过你说不过去的原因是什么你怎么不写出来呀要别人怎么回答你的问题

这好容易的啊。!~
定义一个指针针再把这个数组的数地址赋给这个指针,再把该指针的值加上该数组的元素个数。最后直接打印出即可!!

p=s+10;这样指针指向的不是数组的最后一个元素,相当于数组下标越界了。