📜  使用指针反转数组的程序(1)

📅  最后修改于: 2023-12-03 15:06:56.480000             🧑  作者: Mango

使用指针反转数组的程序

在C语言中,我们经常需要对数组进行反转操作。反转数组就是将数组中的元素按照相反的顺序重新排列。本文将介绍如何使用指针来反转数组。

反转数组的基本原理

反转数组的基本原理是:将数组的第一个元素和最后一个元素交换,将第二个元素和倒数第二个元素交换,以此类推。当数组长度为奇数时,中间的元素不需要移动。

反转数组的C代码

下面是一个使用指针反转数组的程序:

#include <stdio.h>

void reverse(int *arr, int len){
    int *left = arr, *right = arr + len - 1;
    while (left < right){
        int temp = *left;
        *left++ = *right;
        *right-- = temp;
    }
}

int main(){
    int arr[] = {1, 2, 3, 4, 5};
    int len = sizeof(arr)/sizeof(int);
    printf("Before reverse: ");
    for (int i = 0; i < len; i++){
        printf("%d ", arr[i]);
    }
    printf("\n");
    reverse(arr, len);
    printf("After reverse: ");
    for (int i = 0; i < len; i++){
        printf("%d ", arr[i]);
    }
    printf("\n");
    return 0;
}

下面是代码片段的markdown格式:

```c
#include <stdio.h>

void reverse(int *arr, int len){
    int *left = arr, *right = arr + len - 1;
    while (left < right){
        int temp = *left;
        *left++ = *right;
        *right-- = temp;
    }
}

int main(){
    int arr[] = {1, 2, 3, 4, 5};
    int len = sizeof(arr)/sizeof(int);
    printf("Before reverse: ");
    for (int i = 0; i < len; i++){
        printf("%d ", arr[i]);
    }
    printf("\n");
    reverse(arr, len);
    printf("After reverse: ");
    for (int i = 0; i < len; i++){
        printf("%d ", arr[i]);
    }
    printf("\n");
    return 0;
}