#include <stdio.h> void reversal(int *a,int len) { if (len<2) return; //用指针实现 int *left=a,*right=a+len-1,temp; do { temp = *left; *left = *right; *right = temp; }while (++left < --right); /*while (left++ <= right--)//指针的第二种写法 { temp = *left; *left = *right; *right = temp; } //用数组实现 int end=len/2,tmp,j; for (int i=0;i<end;++i) { tmp = a[i]; j = len -1 - i; a[i] = a[j]; a[j] = tmp; }*/ } void print_arr(int *a,int len) { for (int i=0;i<len;i++) { printf("%d ",a[i]); } printf("/n"); } int main(void) { int a[] = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */ int len = sizeof(a) / sizeof(*a); print_arr(a,len); reversal(a,len); /* 调用自定义函数进行反向显示排序,并把数组a的起始地址传送给形式参数x */ print_arr(a,len); }