聲明: char *lineptr[MAXLINES]
它表示lineptr是一個具有MAXLINES個元素的一維數組,其中數組的每一個元素是一個指向字符類型對象的指針,也就是說,lineptr[i]是一個字符指針,而*lineptr[i]是該指針指向的第i個文本行的首字符.
例:指針數組的初始化(摘自C程序設計)
編寫一個函數month_name(n),它返回一個指向第n個月名字的字符串的指針(這也是內部static類型數組的一種理想應用)
程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *month_name(int n)
{
static char *name[13] = {
"Illegal month",
"January", "February", "March",
"April", "May", "June",
"July", "August", "September",
"October", "November", "December"
};
return (n < 1 || n > 12) ? name[0] : name[n];
}
int main()
{
int mon;
char *monthname;
printf("please input the month name :\n");
scanf("%d", &mon);
monthname = month_name(mon);
printf("%s\n", monthname);
return 0;
}
其中name的聲明是一個一維數組,數組的元素為字符指針,第i個字符串的所有字符存儲在存儲器中的某個位置,指向它的指針存儲在name[i]中,由於上述聲明中沒有指明數組name的長度,因此,編譯器編譯時將對初值個數進行統計,並將這一准確數字填入數組長度.