#include <stdio.h>
int main(void)
{
char a[3][4] = {"123", "abc", "edf"};
char *p[3];
char **pp;
int i;
for(i = 0; i < 3; ++i){
p[i] = a[i];
}
pp = p;
for(i = 0; i < 3; ++i){
puts(*pp++);
}
return 0;
}
執行結果如下:
123 abc edf
在上面的例子中,a是一個存儲了3個字符串的數組,p是一個存儲了3個字符指針的數組,pp是一個指向字符指針對象的指針。 第一個for循環將數組p的3個字符指針分別指向了存儲在a中的3個字符串,然後將pp指向了數組p的起始地址,第二個for循環通過pp依次獲得了數組p中的3個元素值,即3個字符串的起始地址,再通過函數puts()將3個字符串顯示出來。