C语言指针一个不容易发现的错误,上次看视频,没找到这个,求大佬解答啊
#include<stdio.h>void main()
{
int *p,i,a;
p=a;
for(i=0;i<10;i++)
{
scanf("%d",p++);
}
printf("\n");
for(i=0;i<10;i++,p++)
{
printf("%d",*p);
}
} 你只需要在第二个for前面把p指向a即可,p=a;
第一个循环结束后p指向了最后一个元素的地址,只要这时候再p=a重新赋值就行了
#include<stdio.h>
void main()
{
int *p,i,a;
p=a;
for(i=0;i<10;i++)
{
scanf("%d",p + i);
}
printf("\n");
for(i=0;i<10;i++)
{
printf("%d ",*p + i);
}
}
还没弄明白? 弄明白了,就给个最佳答案,没弄明白,请继续提出问题
#include<stdio.h>
void main()
{
int *p,i,a;
p=a;
for(i=0;i<10;i++)
{
scanf("%d",p++);
}
printf("\n");
for(i=0;i<10;i++)
{
printf("%3d",*p);
}
printf("\n");
}
为什么这个程序运行之后的结果也能达到预期啊,第二个for里面是怎么输出数组的值的啊
页:
[1]