指標也是變數,可組成陣列。格式:
類型 *陣列名[大小];
int *a[10]; // 10 個指向 int 的指標
陣列名 a 為常量,a[i] 為指標變數。
二維陣列處理長度不一的字串浪費空間;指標陣列每個元素儲存字串首址,靈活高效。
char *month_name(int n) {
static char *name[] = {
"Illegal month", "January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
};
return (n < 1 || n > 12) ? name[0] : name[n];
}
main() {
for (int i = 0; i < 13; i++)
printf("%s\n", month_name(i));
}
靜態指標陣列儲存字串首址,回傳對應月份指標,極度節省記憶體且程式碼簡潔。