c语言基础--指针

本文介绍了指针的基本概念,包括指针作为内存地址的表示,如何通过取地址符(&)获取变量地址并用指针变量存储。指针运算包括加减整数、指针比较,以及指针与数组的关系,数组名即为首元素地址。还探讨了二级指针,用于指向指针变量,以及如何使用指针数组模拟二维数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在之前的介绍中融入了不少关于指针的知识点,因此现在对于指针已经有一定的了解了,首先我们来介绍一下什么是指针:要想了解指针我们首先要了解内存,32位的机器有32根线来管理内存,每根线在寻址的时候产生高电压和低电压,也就是一共2的32次方种不同的地址,一个地址管理一个内存单元,一个内存单元有一字节,也就是32位的机器可以管理4gb的内存空间,64位的机器可以管理8gb的内存空间。那么了解这些之后我们就可以想,能不能通过将内存取出来,以此来找到地址?答案是可以的,我们用&操作符来讲变量的地址取出,然后用什么来接收呢?指针变量此时诞生了,用它来接收地址,再使用解引用操作符来通过地址找到变量。

指针运算有三种:1、指针+-整数;2、指针-指针(前提是两个指针必须同时指向同一片空间),得到的是两指针间的元素个数;3、指针大小的比较。

指针与数组:两者是两个完全不同的东西,但是两者间有一个联系,数组名就是数组首元素的地址,这建立了两者间的联系,可以通过地址来访问数组,其实编译器会自动将arr[i]转化为*(arr+i)来计算,这样的表达式才能计算。

稍微进阶一点的二级指针:int a=10;int *pa=&a;int* *ppa=&pa; pa可以理解为一级指针,里面的*表示pa是一个指针,指向的是int类型的内容,同理,二级指针中第二个*表示ppa是一个指针,指向的是一个int*类型的变量。二级指针解引用得到的是一级指针的内容,也就是a的地址,**ppa==a,两者完全等价。

指针数组:这是一个数组,里面存放的是地址,我们可以用指针数组来管理多个一维数组,以此来模拟一个二维数组的效果。(效果基本按相同)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-hhY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值