首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言實例練習

C語言練習實例90:數組逆序輸出(指針實現)

     編輯:C 語言實例練習

C語言練習實例90:數組逆序輸出(指針實現)

本實例演示如何使用指針算術將一個整型數組的元素順序顛倒,並輸出結果。

程序分析

  • 定義宏 M = 5 和數組 a[M] 初始化為 1~5。
  • 使用兩個指針(或下標)i 從頭,j 從尾,向中間遍歷交換元素。
  • 交換時通過指針解引用 *(a+i) 訪問元素。
  • 最後遍歷輸出逆序後的數組。

源代碼

// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>

#define M 5

int main() {
    int a[M] = {1, 2, 3, 4, 5};
    int i, j, t;

    i = 0;
    j = M - 1;

    while (i < j) {
        t = *(a + i);
        *(a + i) = *(a + j);
        *(a + j) = t;
        i++;
        j--;
    }

    for (i = 0; i < M; i++) {
        printf("%d\n", *(a + i));
    }

    return 0;
}

運行結果

5
4
3
2
1

要點

  • 指針算術 *(a+i) 等價於 a[i]。
  • 雙指針法原地逆序,空間複雜度 O(1),時間複雜度 O(n)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved