Fork me on GitHub

c语言之使用指针将数组进行反转

#include<stdio.h>
#include<iostream>

void reverse(int* a, int length) {
    int* p, temp, * i, * j, m;
    m = (length - 1) / 2;//取得中间的下标
    i = a;//i指向数组的首元素
    j = a + length - 1;//j指向数组的尾元素
    p = a + m;//p指向数组中间的元素
    for(; i < p; i++,j--)
    {//依次交换首尾元素的值
        temp = *i;
        *i = *j;
        *j = temp;
    }
}
void printArr(int arr[],int length) {
    for (int i = 0; i < length; i++)
    {
        printf("%d ", arr[i]);
    }
    putchar('\n');
}
int main() {
    int a[5] = { 1,2,3,4,5 };
    int length = sizeof(a) / sizeof(a[0]);
    printf("反转之前的数组:\n");
    printArr(a, length);
    reverse(a, length);
    printf("反转之后的数组:\n");
    printArr(a, length);
    system("pause");
    return 0;
}

输出:

posted @ 2019-12-30 15:54  西西嘛呦  阅读(2642)  评论(0编辑  收藏  举报