指向引用的指针,关于C语言中指向指针的指针

1 , 关于C语言中指向指针的指针int a=1; int *a_ptr=&a; int **p_ptr=a_ptr;是这样的 。没有错误 。printf("%d",**p);输出的格式也是这样的,需要用**来解除指针引用,取得数据 。
2,c 指针引用类型代表一个指向指针类型的指针 。就是说temp这个指针是指向一个指向int类型的指针 。这样说你可能不好理解 。如:一个二维数组,int a[3 ][4 ] 。其中数组名a的性质就类似于int **temp 。我们知道数组名就是一个指针 , 指向数组的首地址 。二维数组可以看成是由多个一维数组组成 。a[ 0 ]就是第一行的指针,也就是a[0]就是第一行的数组名,相当于int *temp 。其中a指针就是指向a[0] 。a里面就是存放a[0]的地址 。理解了不二维指针,表示指向int型指针的指针二级指针a指针指向int型b指针指向指针a的地址现在这个temp就好比b指针比如P,S,K的关系如图:P→S→K 。*S代表存储单元K,*P代表存储单元S , 因此**P代表存储单元K 望采纳指向指针的指针int *temp1; 是定义了一个指针,可以指向int类型的;int **temp;就是可以指向temp1 这个类型的指针,也就是指针的指针;
3,C中的指针的引用与指向引用的指针怎么看出来的怎么理解搜(1)引用是C++的特性,C语言中没有;(2)引用是个别名 , 不是数据类型,不分配存储空间,只是一种机制;(3)引用作为目标的别名使用,对引用的改动实际上是对目标的改动;(4)在C++中 , 定义含有分配存储空间的意义,那么引用是只有声明,没有定义;(5)要求在声明一个引用前,它所维系的目标已经声明或者定义;例如:int a;int &b=a;//a应该是已经声明或者定义过的变量;(6)引用在声明时,必须被初始化,否则产生编译错误;(7)C++没有提供访问应用本身地址的方法,如果程序寻找引用的地址,只能找到它所引用的目标的地址;引用一旦初始化,就维系在一定的目标上,再也不分开;(8)引用与指针有很大的区别,指针是个变量,可以把它再次赋值成指向别处的地址,但是,建立引用时必须初始化,并且决不会再关联其他的任何变量;(9)引用本身不是一种数据类型,所以没有引用的引用,也没有引用的指针;(10)有空指针 , 无空引用;由此可知道,指向引用的指针是不存在的 , 因为它没有空间,也就没有地址 , 及时使用&,取出来的也只是它引用对象的地址 。而指针的引用和其他的引用一样,可以这么理解:typedefint * type;type pi;type &pr=pi;*跟类型符在一起说明这个是指针类型他后面跟着的自然是指针变量 。。引用就是1个变量的别名 。。他后面紧跟着的就是他要引用的那个变量 。。。比如 int&*ip=i引用符号后面是*ip显然他是指针的引用 。。同理下一个也这么判断 。还有引用和地址要区分好 。引用必然会初始化、引用知识1个别名而已 。。记住这一点 。【指向引用的指针,关于C语言中指向指针的指针】

    推荐阅读