Day19-多重指标

继续讲*指标,指标不是只能有一个还能继续层层指下去

#include <stdio.h>
#include <stdlib.h>

int main()
{

    int p = 10;
    int *ptr = &p;
    int **ptr2 = &ptr;
    int ***ptr3 = &ptr2;

    printf("取得p的记忆体位置: %p\n", &p);
    printf("取得p值: %d\n", p);

    printf("*ptr取得到的p值: %d\n", *ptr);
    printf("ptr指向的记忆体位址: %p\n", ptr);
    printf("取得ptr自身的记忆体位址: %p\n\n\n", &ptr);
 
    printf("**ptr2取得到的p值:%d\n", **ptr2);
    printf("*ptr2指向p记忆体位置:%p\n", *ptr2);
    printf("ptr2指向ptr1的记忆体位置:%p\n", ptr2);
    printf("取得ptr2记忆体位址:%p\n\n\n", &ptr2);

    printf("***ptr3取得到p的值:%d\n", ***ptr3);
    printf("**ptr3指向p记忆体位置:%p\n", **ptr3);
    printf("*ptr3指向ptr1的记忆体位置:%p\n", *ptr3);
    printf("ptr3指向ptr2的记忆体位置:%p\n", ptr3);
    printf("取得ptr3记忆体位址:%p\n", &ptr3);
    return 1;
}
// result
取得p的记忆体位置: 0x7fffffffdb0c
取得p值: 10

*ptr取得到的p值: 10
ptr指向的记忆体位址: 0x7fffffffdb0c
取得ptr自身的记忆体位址: 0x7fffffffdb10

**ptr2取得到的p值:10
*ptr2指向p记忆体位置:0x7fffffffdb0c
ptr2指向ptr1的记忆体位置:0x7fffffffdb10
取得ptr2记忆体位址:0x7fffffffdb18

***ptr3取得到p的值:10
**ptr3指向p记忆体位置:0x7fffffffdb0c
*ptr3指向ptr1的记忆体位置:0x7fffffffdb10
ptr3指向ptr2的记忆体位置:0x7fffffffdb18
取得ptr3记忆体位址:0x7fffffffdb20

上面一串三重指标看似超深澳,但转化成下面这张图就很好理解了,好像越解释越复杂了,算了XD

https://ithelp.ithome.com.tw/upload/images/20211001/20098886gpvJbgHZfZ.png


<<:  稳定大公司 v.s. 未来独角兽的新创

>>:  [Day 15] 中场休息-GitHub,团队自用两相宜的code管理服务平台

如何用 SQL 去除重复资料 : Distint

简单分享个简单但之前不知道的 SQL,还是 PM 跟我讲的 X) 情境 有哪些供应商有订单状态为 2...

Day19:别说那麽多废话,讲重点

Lambda在刚开始学Java一定会很不想碰,会觉得好不容易对Java有点熟悉了,结果又搞出一整陀新...

Day25 Plugin 从零开始到上架 - Android instagram APIs

GraphInstagramService: interface GraphInstagramSer...

30天程序语言研究

今天是30天程序语言研究的第二十六天,由於最近写unix语言的东西用到很多,所以做了很多笔记,就想说...

高层架构介绍

本系列文章同步发布於笔者网站 我们在前几篇文章介绍了 NIST 对云端的定义,从今天开始文章将会进入...