#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個字符串顯示出來。