斑竹网络专注为中小企业客户提供以管理服务为核心的IT全方位服务 https://www.sysadm.cn
分类: C/C++
2017-10-19 14:47:38
指针变量也是一种变量,其本身有地址,如char *p1, 则 &p1表示指针变量自己的地址;
指针变量的值则被指向内存区域的地址,如p1=malloc(6*sizeof(char)),则指针p1的值即为malloc函数所开辟出来内存区域的首地址,用p1表示;
通过指针取得该指针所指向对象的值,则需要用取值符号,即*p1的形式;
双重指针,也即指向指针的指针,其定义形式为char **p2;
双重指针变量的值为其所指向指针的地址,如p2 = &p1, 则指针p2的值为指针p1的地址;
继上,*p2则为其所指向对象的指针的值,即p1的值,也即函数所开辟出来内存区域的首地址;
而&*p2指表示指p2所指向对象,即指p1的地址,也即&*p2= p2=&p1;
**p2则是表示p2所指向指针所指向对象的值,即上述malloc函数所开辟出来的内存区域首地址所存放的值;