下列程序的输出结果为: 
 #include <stdio.h>
#include <string.h>
void main() {
    char* a[] = {"hello", "the", "world"};
    char** pa = a;
    pa++;
    printf("%s\n", *pa);
} 指针有两个属性:类型和值。
指针自增,就是指针增加一个指向类型的长度。
例如指向char的指针ptr自增,那ptr的值就会增加char所占的内存大小,即1字节。
那这里指向char*类型的指针pa自增,pa的值就会增加char*类型所占的大小,即一个指针所占的大小4字节(32位机)。
//声明了一个指针数组a。数组中的元素全部都是指向char类型的指针(char*)。
char* a[ ] = { "hello", "the", "world"};
//声明了一个二级指针pa。pa是指向char*类型的指针!
//即pa是指向 char*(指向char类型的指针) 类型的指针,pa的值是指针数组a的首地址。
char** pa = a;
//pa++,即pa的值增加指针类型所占大小,即4字节。
//原来pa的值是数组指针a的首元素地址,现在pa的值是指针数组第二个元素的地址。
pa++;
//对pa解引用得到的是一个数组指针,就是指针数组a第二个元素,即"the"的地址。
cout<<*pa<<endl