指针的指针,在符号 * 前再加一个 * ,如下面语句:
char a;
char * b;
char ** c;
a = 'z';
b = &a;
c = &b;
假设这些变量 的地址分别为:7230,8092,10502,如图示:
方框中是变量所存的值,相应下面数字是所存的值对应的存储单元地址
不难看出,变量 c 是指向指针的指针,关于它我们从三个方面来考虑,每一个方面对应了不同 的数值:
- c 是一个 (char**)类型的变量,值是8092
- *c 是一个(char*)类型的变量,值是7230 = b
- **c 是一个(char)类型的 变量,值是'z' = *b
从上面推倒似乎能总结出一个规律:指针变量 c 前面的星号(*) 个数是偶数个的时候,c代表char类型的值,奇数个的时候,c代表内存地址的值。