二維數組的定義與特性
二維數組的聲明格式為:
類型說明符 數組名[表達式1][表達式2];
? ?[下標1]
表示行索引,[下標2]
表示列索引。
????????二維數組可視為由多個一維數組組成,a[0]
表示第0行的首地址(即一維數組地址)a[0][0]表示第0的第一個元素
。
初始化規則
????????行數可省略,編譯器根據初始值自動推導:
int a[][3] = {{1, 2, 3}, {4, 5, 6}}; // 合法
????????列數不可省略,否則編譯錯誤:
int a[2][] = {{1, 2}, {3, 4}}; // 錯誤
計算行列數
????????行數:總字節數除以單行字節數:
int rows = sizeof(a) / sizeof(a[0]);
????????列數:單行字節數除以元素字節數:
int cols = sizeof(a[0]) / sizeof(a[0][0]);
二維字符數組
????????用于存儲字符串集合,每行代表一個字符串:
char strs[][10] = {"hello", "world"};
int rows = sizeof(s) / sizeof(s[0]);
函數的基本概念
函數用于模塊化代碼,降低耦合性,提高復用性。
定義格式
類型標識符 函數名(形式參數表列) {聲明部分;語句部分;
}
????????若未指定返回類型,默認為int
。
????????函數不可嵌套定義,但可嵌套調用。
斷言(assert)
用于調試階段檢查條件,若條件為假則終止程序:
#include <assert.h>
int x = 10;
assert(x == 10); // 繼續執行
assert(x == 5); // 終止程序
關鍵注意事項
函數返回值不能是數組,但可返回數組地址。