继续讲*指标,指标不是只能有一个还能继续层层指下去
#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
>>: [Day 15] 中场休息-GitHub,团队自用两相宜的code管理服务平台
简单分享个简单但之前不知道的 SQL,还是 PM 跟我讲的 X) 情境 有哪些供应商有订单状态为 2...
Lambda在刚开始学Java一定会很不想碰,会觉得好不容易对Java有点熟悉了,结果又搞出一整陀新...
GraphInstagramService: interface GraphInstagramSer...
今天是30天程序语言研究的第二十六天,由於最近写unix语言的东西用到很多,所以做了很多笔记,就想说...
本系列文章同步发布於笔者网站 我们在前几篇文章介绍了 NIST 对云端的定义,从今天开始文章将会进入...