char *ptr1[4] = {"china","chengdu","sichuan","chongqing"}; 各指針指向常量區字符串,ptr1[i] 直接作 %s 輸出。int a[3]={1,2,3}; int *ptr2[3]; for(i) ptr2[i]=&a[i]; 解引用 *ptr2[i] 獲取元素值。int b[3][2]={...}; for(i) ptr2[i]=b[i]; ptr2[i] 指向第 i 行首元素,*(ptr2[i]+1) 取同行次元素。ptr2[i]+1 即同行下一列,利用行連續存儲特性。#include
#include
main() {
char *ptr1[4] = {"china","chengdu","sichuan","chongqing"};
int i, *ptr2[3], a[3]={1,2,3}, b[3][2]={1,2,3,4,5,6};
for(i=0;i<4;i++) printf("\n%s", ptr1[i]);
for(i=0;i<3;i++) ptr2[i]=&a[i];
for(i=0;i<3;i++) printf("%4d", *ptr2[i]);
printf("\n");
for(i=0;i<3;i++) ptr2[i]=b[i];
for(i=0;i<3;i++) printf("%4d%4d\n", *ptr2[i], *(ptr2[i]+1));
}
輸出:四行字符串、一維陣列 1 2 3、二維陣列逐行兩列值。