首页 > 代码库 > C数组逆序

C数组逆序

一、标准交换模式

/****

*标准交换模式

*实现数组的逆序,原理就是数组的首尾元素进行交换

***/

#define N 5;

int main(){

int array[N] = {15,20,25,30,35}

int temp; //声明临时变量

int i;

for(i = 0;i<N/2;i++){

//第i个值和第N-i-1个值相交换

temp = array[i];

array[i] = array[N - i - 1];

array[N - i - 1] = temp;

}

printf("逆序:\n");

for(i = 0;i < N;i++){

printf("%d\t",*(array + i));

}

}

 

二、指针交换模式

/****

*指针交换模式

*实现数组的逆序,原理就是数组的首尾元素进行交换

***/

#define N 5;

int main(){

int array[N] = {15,20,25,30,35}

int temp; //声明临时变量

int i;

int *ptr_array_start = array;

int *ptr_array_end = array + N - 1;

while(ptr_array_start>=ptr_array_end){

//首尾交换,指针分别进行更新

temp = *ptr_array_start;

*ptr_array_start = *ptr_array_end;

*ptr_array_end = temp;

//首元素指针要向后移动

ptr_array_start++;

//末元素指针要向前移动

ptr_array_end--;

}

printf("逆序:\n");

for(i = 0;i < N;i++){

printf("%d\t",*(array + i));

}

}

 

C数组逆序