封裝函數集
#include <stdio.h>
void init(int *a, int n) {
for (int i = 0; i < n; ++i) a[i] = i;
}
void print(int *a, int n) {
for (int i = 0; i < n; ++i) printf("%d ", a[i]);
putchar('\n');
}
void empty(int *a, int n) {
for (int i = 0; i < n; ++i) a[i] = 0;
}
static void swap(int *x, int *y) {
int t = *x; *x = *y; *y = t;
}
void reverse(int *a, int n) {
for (int l = 0, r = n-1; l < r; ++l, --r) swap(&a[l], &a[r]);
}
int main() {
int a[10];
init(a, 10); print(a, 10); // 0 1 2 3 4 5 6 7 8 9
reverse(a, 10); print(a, 10); // 9 8 7 6 5 4 3 2 1 0
empty(a, 10); print(a, 10); // 0 0 0 0 0 0 0 0 0 0
return 0;
}
設計要點
- 函數接收
int* 和長度,不依賴固定大小;
swap 內聯靜態函數,避免函數調用開銷;
reverse 雙指針原地交換,O(1) 空間;
- 適合教學展示數組指針操作、模塊化思想。