陣列的初始化、清空和逆置
阿新 • • 發佈:2018-12-20
#include <stdio.h> #include <stdlib.h> void Init(int arr[], int size) { // memset 一個位元組一個位元組的填充 memset(arr, 0, size*sizeof(arr[0])); } void Empty(int arr[], int size) { Init(arr, size); } // 在這裡,初始化和清空是一樣的操作 void Swap(int* x, int* y) { int temp = *x; *x = *y; *y = temp; } void Reverse(int arr[], int size) { if (size <= 1) { return 0; } int left = 0; int right = size - 1; while (left < right) { Swap(&arr[left], &arr[right]); ++left; --right; } } // 5個元素 #define SIZE 5 // 在函式內部無法求得陣列元素的個數 // 陣列作為函式引數的時候會隱式轉換為指標,指向陣列的首元素 int main() { int arr[SIZE] = { 1, 2, 3, 4, 5 }; // 初始化 Init(arr, SIZE); for (int i = 0; i < SIZE; ++i) { printf("%d\n", arr[i]); } // 清空 Empty(arr, SIZE); for (int i = 0; i < SIZE; ++i) { printf("%d\n", arr[i]); } // 轉置 Reverse(arr, SIZE); for (int i = 0; i < SIZE; ++i) { printf("%d\n", arr[i]); } system("pause"); return 0; }
在進行需要的操作時可對其他操作的程式碼進行註釋,具體的陣列也可以根據自己的需要進行更改。