定义一个数组int array[10]={0,1,2,3,4,5,6,7,8,9},使用数组元素的名称array作为函数的形参,在函数内使用array[i]时,此时表示的是array+2(一个指针变量),而不是数组的第3个元素array[2]=2。
#include <stdio.h>
#include <stdlib.h>
void sort(int a[],int n);
int main() {
int a[10],i;
printf("交换顺序前:");
for(i=0;i<10;i++){
a[i]=rand()%99;
printf("a[%d]=%d\t",i,a[i]);
}
sort(a,10);
printf("\n");
printf("交换顺序后:");
for(i=0;i<10;i++){
printf("a[%d]=%d\t",i,a[i]);
}
return 0;
}
void sort(int *a,int n){
int i=0,temp;
for(;i<n/2;i++){
temp=a[i];//此时的a[i]表示的是&a[i],即a+i,而不是数组第i+1个元素的值
a[i]=a[n-i-1];
a[n-i-1]=temp;
}
}