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

C語言指針實戰:函數傳遞數組並通過指針返回最大值與最小值

     編輯:關於C語言

C語言指針實戰:函數傳遞數組並通過指針返回最大值與最小值

需求:編寫函數接收 int 數組,通過指針參數「帶回」最大值與最小值。

標準實現

#include <stdio.h>

void find_min_max(int *arr, int size, int *pmax, int *pmin) {
    *pmax = *pmin = arr[0];          // 初始化
    for (int i = 1; i < size; i++) {
        if (arr[i] > *pmax) *pmax = arr[i];
        if (arr[i] < *pmin) *pmin = arr[i];
    }
}

int main() {
    int a[] = {1, 2, 3, 4, 5, 6};
    int max, min;
    find_min_max(a, 6, &max, &min);
    printf("Max: %d, Min: %d\n", max, min);  // Max: 6, Min: 1
    return 0;
}

核心知識點

  • 數組退化為指針:參數 int *arr 接收首元素地址。
  • 輸出型參數:int *pmax 傳入變量地址,函數內通過解引用修改原變量。
  • 單次遍歷:同時維護 max/min,比兩次遍歷更高效。
  • 邊界處理:生產代碼應檢查 size > 0 並斷言指針非空。

進階擴展

若需返回多個統計值(和、平均、方差),可定義結構體:

typedef struct { int max, min; long long sum; } Stats;
void compute_stats(int *arr, int n, Stats *out);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved