指针数组示例

设有一个数列,包含10个数,已按升序排好。现要求编写程序,把从指定位置开始的n个数按逆序重新排列并输出新的完整数列。进行逆序处理时要求使用指针方法。试编程。(例如:原数列为2,4,6,8,10,12,14,16,18,20,若要求把从第4个数开始的5个数按逆序重新排列,则得到新数列2,4,6,16,14,12,10,8,18,20)

  1 #include<stdio.h>
  2 int main()
  3 {
  4     int i,m,j,n,a[10],b,c;
  5     int *p[10];
  6     for(i=0;i<10;i++)
  7         p[i]=&a[i];              //p[i]不用&,因为它是指针。也是数组,p[i]本身表示地址
  8     printf("请按照从小到大的顺序输入10个数");
  9     for(i=0;i<10;i++)
 10         scanf("%d",a+i);
 11     printf("输入m,n");
 12     scanf("%d%d",&m,&n);
 13        b=m-1;c=m+n-2;
 14     for(i=0;i<n;i++,b++,c--)
 15        p[b]=&a[c];
 16 
 17 
 18   for(j=0;j<10;j++)
 19     printf("%4d",**(p+j));   //指针数组,数组指针,需要解引两次,解引一次仍是地址
 20 putchar('\n');
 21 
 22 }


猜你喜欢

转载自blog.csdn.net/it8343/article/details/80162860