指針數組的初始化:
指針數組的初始化語法與其他類型對象的初始化語法類似,下面是一個例子:
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];
}
其中name是一個一維數組,數組的元素為字符指針。name數組的初始化通過一個字符串列表實現,列表中的每個字符串賦值給數組相應位置的元素。第i個字符串的所有字符存儲在存儲器的某個位置,指向它的指針存儲在name[i]中。由於上述聲明沒有指明name的長度,因此編譯器會對初值個數進行統計,並將這一准確數字填入數組的長度。