c++指针

文章从指针的基本概念入手,将内存空间比喻为列表,帮助读者形象理解指针作为内存地址的表示。接着介绍了如何定义和操作指针,包括指针的赋值和指针算术。最后,文章通过多重指针的概念,进一步阐述了指针的层次结构,以直观的方式解释了如何存储指向指针的指针。
摘要由CSDN通过智能技术生成

题外话

学习前必备的一些知识

关于数据在内存的存储方式一些知识
不知道的请自行退出本篇博客去学习相关知识

正文

指针的基本概念

先让我们来了解一下指针的基本概念(以下摘自百度百科):

指针描述了数据在内存中的位置,标示了一个占据存储空间的实体,在这一段空间起始位置的相对距离值。在 C/C++语言中,指针一般被认为是指针变量,指针变量的内容存储的是其指向的对象的首地址,指向的对象可以是变量(指针变量也是变量),数组,函数等占据存储空间的实体。

你看看,这是人能看得懂的吗(doge
咳咳,当然这种高深的概念肯定有一些人看不懂,所以本作者就 大发慈悲的 给你们解释一番吧

首先,发挥你的想象力来把内存空间想象成一个列表,就像这样:

idvalue
1xxx
2xxx
3xxx
4xxx

如果你能想象出来这张表格,那么你对指针已经理解一半了
现在来假设这张表格里有个箭头指着这个表格里的某一行,就像,这样:

idvalue
1xxx
2xxx
----->3xxx
4xxx

好,如果你能把这个箭头想象出来,那么,恭喜你,你已经成功理解了“指针”这一概念了,可以进入下一阶段了解一下在程序里指针该如何实现了。
现在在你脑海里那个箭头就是指针了,那张表格就是内存空间。

指针的一些操作

首先呢,你要学会定义一个指针,就像,这样:

int *p;

现在,你已经成功定义了一个int类型的指针了,当然,这边有一个特别坑人的点,就是这个指针变量的类型是int *名称是p,而不是类型为int,名称为*p
注意:指针是指向内存某一个地址的变量,所以赋值是要p=&变量名
当然也可以直接改指针指向的地点的值,只要*p=值就好了
p+x表示指针p后的的x个存储空间,x可为负数

多重指针

这时肯定有聪明的小伙伴要问了,如果我在一个存储指针的地方再存储一个指针会发生什么样奇妙的化学反应呢?
这,就是我们接下来要了解的东西——多重指针
我们再用一遍上面那个比喻,即:把一个箭头只向一张表比作指针,那张表格就是内存空间。

idvalue
1xxx
2xxx
----->3xxx
4xxx

现在我们再单独开一个内存空间用来存储这个指针

idvalue
1xxx
2xxx
3xxx
4xxx
53

然后再开一个空间用来存储指向内存序号3的指针
这就是多重指针
代码:

int a=10;//普通变量
int *p=&a;//指针
int **pp=&p;//多重指针
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值