|
|
发表于 2012-3-20 01:53:03
|
显示全部楼层
#include <stdio.h>
void main()
{
void swap(int *x,int y);
int arr[10]; //定义10个元素的整型数组
int *p;
int i;
p=&arr[0]; //指针p指向数组的首地址,一般用p=a,简洁,但效果其实都是一样的
printf("please input ten number:");
for(i=0;i<10;i++)
scanf("%d",p+i);
for(i=0;i<10;i++)
printf("%d ",*p++); //printf("%d ",*(p+i));
/**
*如果用你原来的程序,只需要将 p=arr;语句放到swap(p,10);之前即可,因为你打印后,p已经不指向数组的首地址了
*看的出,你很有思想,很爱探索,不按常规哦...
**/
p=arr;
swap(p,10);
printf("\n");
for(i=0;i<10;i++)
printf("%d ",*p++);
}
void swap(int *p,int n)
{
//这里简写吧
int *i,*j,m; //定义两个指针,两头跑
for(i=p,j=p+n-1;i<j;i++,j--)
{
m=*i;
*i=*j;
*j=m;
}
}
|
|