Array
- 陣列是一種可以儲存大量相同型別資料的方法。
- 連續的記憶體位置。
- 永遠從0開始
int32_t a[10]
->a[0] ~ a[9]
- 計數變數 i 的型別可以宣告為
size_t
,它是一個無號的整數型別。 - 初始化
int32_t a[5] = {0, 0, 0, 0, 0};
int32_t a[5] = {0};
- 存取陣列元素使用
variable[index]
- 專業說明:電腦將找到第一個元素的地址,然後根據索引移動記憶體位置以訪問數據。
- 事實上一維陣列可以處理所有情況,至於多維陣列只是給人類方便閱讀的。
define
- 是遇處理指令,不是C的詞(statement)
- 我們可以使用
#define
去做巨集(MACRO)- 當開發時MACRO有些像function,然而對電腦而言他們是不同的。
- 當遇到MACRO,編譯器將簡單的依定義替換掉程式碼。
- 函式擁有自己的標記。
基本排序
氣泡排序法
|
|
qsort
|
|
傳陣列至函式
|
|
- 除了第一個[]外,剩下的都必須要給大小。(電腦才能計算偏移量)
- 為甚麼要給size? 因為傳過去的只是陣列的記憶體起始位置而已。
- 在函式中依然會改到本身的值。
const
- constant
- read-only
可變長度陣列
- Variable Length Array
- 雖然有些編譯器支援了以下寫法(C99之後),但有些依然不支援
|
|
- 但你應該使用
malloc
- 準確來說,你應該使用
calloc
,而不是 `malloc。
- 準確來說,你應該使用
- 我的建議:當考試的時候不要使用這功能(
a[n]
),因為你不知道編譯器的版本。