c语言双重指针字符串排序,C语言双重指针解析

201610181557196870.jpg

码农公社  210.net.cn  210= 1024  10月24日一个重要的节日--码农(程序员)节

双重指针:

指向指针的指针是一种多级间接寻址的形式,或者说是一个指针链。通常,一个指针包含一个变量的地址。当我们定义一个指向指针的指针时,第一个指针包含了第二个指针的地址,第二个指针指向包含实际值的位置。

直接上脚本

#include

int main ()

{

int a = 10;     int *p,**pt;

p = &a;     pt = &p;

printf("变量a的内存地址:0x%X\n",&a);

printf("变量a存储的值:%d\n",a);

printf("指针p的内存地址:0x%X\n",&p);

printf("指针p存储的地址:0x%X\n",p);

printf("指针pt的内存地址:0x%X\n",&pt);

printf("指针pt存储的地址:0x%X\n",pt);

}

输出结果

变量a的内存地址:0x24FE4C

变量a存储的值:10

指针p的内存地址:0x24FE40

指针p存储的地址:0x24FE4C

指针pt的内存地址:0x24FE38

指针pt存储的地址:0x24FE40

由输出可见,双重指针pt存储的地址为指针p的内存地址 即pt = &p ; 单指针之前已经总结过,在此不再赘述;那么*pt,**pt又为何值与指针p的关系是什么?

#include

int main ()

{

int a = 10;     int *p,**pt;

p = &a;     pt = &p;

printf("变量a的内存地址:0x%X\n",&a);

printf("变量a存储的值:%d\n",a);

printf("指针p的内存地址:0x%X\n",&p);

printf("指针p存储的地址:0x%X\n",p);

printf("指针pt的内存地址:0x%X\n",&pt);

printf("指针pt存储的地址:0x%X\n",pt);

printf("指针*pt是什么:0x%X\n",*pt);

printf("指针**pt是什么:%d\n",**pt);

}

//变量a的内存地址:0x24FE4C

//变量a存储的值:10

//指针p的内存地址:0x24FE40

//指针p存储的地址:0x24FE4C

//指针pt的内存地址:0x24FE38

//指针pt存储的地址:0x24FE40

//指针*pt是什么:0x24FE4C

//指针**pt是什么:10

等价关系 *pt = p ,**pt = p ;

绘制关系图如下:

0652d2ef68cda65b2f1c01928b6386b2.png

源自https://www.cnblogs.com/lianzhilei/p/11232765.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值