超简单的指针理解方式,让你对指针不再迷茫

在学习C/C++的过程中,指针对于初学者来说是一个难点,但是读了本文之后,相信你会对指针有一个更深刻的理解。下述文章仅代表个人观点,如有不妥,欢迎指正。

想要了解指针需要了解以下几个问题:

1、什么是指针?
指针就是一个地址,一个变量的地址就是这个变量的指针。

2、指针的存储形式是什么?
每一个变量都有自己在内存中的存储位置,所以每个变量都有自己独一无二的地址。当然指针也是存储在内存中的,所以指针也有自己的地址,但是指针在内存中存储的数据是它指向的变量的地址。

3、指针的读取方式?
指针是一个地址,咱们来读取这个地址需要用到一个符号“*”,这个符号就是读取我指针变量的地址中的数据所存储的变量地址,所以说指针变量就像一个藏宝图,只有得到这个藏宝图,才能得到我们最终想要的“宝藏”(变量)。

下面我们就以一些指针类型的定义,来帮助咱们去解读指针:

1、int *p;
这个应该是最简单的指针了,它代表的意思是:定义了一个指针变量p,指针变量指向的数据类型为整型。简单点说就是我想要给p赋值时,这个内存地址上必须是一个整型的变量。

2、int *p[N];
这个指针的含义是:定义了N个指向整型变量的指针组成的数组,其中p的地址中存放的值,是指向的整型变量的地址。数组中的每个元素都是指向整型变量的指针。这里我的理解方式是:由指针变量开始,按照优先级来读,首先[ ]的优先级高于定义变量类型,所以首先p是一个数组,再与指针类型结合就理解成p是一个指针数组。

3、int (*p)[ ];
按照解读方式来读就是:首先p是一个指针,其次它指向的是一个整型数组。所以p就是一个指向整型数组的数组指针。(p中存放的是每一个数组的首地址。)

4、int *p();和int (*p)();
继续解读:首先p先和()结合,说明他是一个函数,其次在于类型结合就是:函数的返回值是一个指针。第二个,首先他是一个指针,其次在与()结合,最后与类型结合,所以他就是一个指向返回值是整型的函数的指针,p中存放着指向的函数的地址。

5、指针带关键字
const int *p和int *const p。前者表示指针指向的变量不可修改(指针的值改变不会改变原地址的值),后者表示指针不可指向别的地址。

以上仅为本人对指针的一些理解,希望能帮到正在学习路上的朋友…

如有不对,欢迎指正讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值