c语言 指针问题4

来源:百度知道 编辑:UC知道 时间:2024/06/15 12:03:30
#include <stdio.h>
main()
{
int n,a[10],*ptr=a;
for(n=0;n<=9;n++)
scanf("%d",ptr++);
printf("output!\n");
ptr=a; /*为什么指针变量要重新指向数组的首地址??前面不是已经定义过了马??*/
for(n=0;n<=9;n++)
printf("%4d",*ptr++);
printf("\n");
}
/*这里不好意思又问个问题,大家都说在ptr=a; 前面指针已经改动过了,此时的指针在a[9]所有才要这句!我的问题是如果现在我去了ptr=a;这句然后将后面的for改成
for(n=9;n<=0;n--) printf("%4d",*ptr--); 为什么不显示出输入的倒数呢??*/

for(n=9;n<=0;n--)
n初值为9,n判断<=0,根本不进循环
应改为for(n=9;n>=0;n--)
还有,再输出前,应让ptr减1,因为输入的时候,实际上ptr多加了1次

假设前面的scanf语句已经输入完数组的值了,循环结束,你再次定义指针,这时指针就又会走到数组下表开始进行下一轮的循环,你想倒叙输出,第二论循环就应该控制数组下标,想办法让N从9开始循环到0然后依次输出,其实这个语句不需要指针完全可以完成