一、指向指针的指针
实例讲解,下面的代码中:
(1)p 定义的是指向整型的指针,也就是说指针变量 p 里边存放的是整型变量 num 的地址。所以,*p 就是对指针进行解引用,得到了 num 的值。
(2) pp 就是指向指针的指针,pp 存放的是指针变量 p 的地址。所以,对 pp 进行一层解引用(*pp)得到的是 p 的值(num 的地址)。
(3)对 pp 进行两层解引用(**pp)相当于对 p 进行一层解引用(*p),得到整型变量 num 的值。
(2)实例讲解:
1.首先定义的是指针数组"array"(里面装的都是指针),然后定义指向指针的指针"str1";使str1=&array[5];意思是:因为"str1"存放的是地址(不理解?就拿*p这个指针套,*p是一个指针,那么p就是地址咯),使"str1"存放array[5]的地址,对"str1"进行一层解引用(*str1)得到的是"array[5]"的值(num 的地址),也就是"fffff...."啦~
2.我们定义了一个指向指针的指针"**str2[6]"(个人理解为指向指针数组的指针,原理一样);把每个指针数组中的元素的地址赋值给"str2",对"str1[ i ]"进行一层解引用(*str1[ i ])得到的是"array[ i ]"的值。