指针一
1|0指针
在我的理解中,指针是用来存放地址的。指针也有大小,对于不同类型的指针char,short,int,,,double,它们的指针大小都是8个字节,对于64位机器是这样的,而对于32位机器它们的指针大小都为4个字节。我的是64位操作系统:
分析以上代码:我们定义并初始化了一个int类型的整型变量a,它的值是10;那么此时内存就会给a分配一个int类型大小的空间用来存放a变量,那么也就是说在内存中有一个内存地址专门来指向a。我们想拿到变量a的地址就要用一个操作符,叫做取地址符&
,通过&a
我们就拿到了a的内存地址,当然我们拿到了a的内存地址就要那个变量把它存起来,所以我们用变量p把它存起来,而p的类型是一个指针*
,而int
表示p所指向的对象的类型是int类型。我们把p的值打印出来:
我们通常用16进制来存储地址。
那我们有了指针变量p如何改变变量a里的值呢,此时我们也要用到一个操作符叫做解引用符*
,*p
就等价于a
,所以我们加入*p = 20;
代码后原来a的值就会被重新赋值为20。
2|0const
在定义变量前加const表示该变量是一个伪常量,你不能直接修改例如:
对于代码int* p = &a;
,加入的const位置不同那么它的作用也不同,例如const int* p = &a;或int const * p = &a
表示我们不能修改指针变量p所指向的那块内存空间里存的值。而int* const p = %a;
,表示我们不能修改指针变量p存储的内存地址的值
3|0多重指针
里面最多有一个三重指针,你每取一次地址就会加一重指针。
4|0指针的加减
指针减指针的结果是它们之间差的元素个数
而指针加1的结果就要根据指针的类型
显而易见它们之间差了4个字节也就是一个int类型的大小。而对于char类型加1,它们之间相差为1也就是一个char类型的大小。
__EOF__

本文链接:https://www.cnblogs.com/bcc0729/p/17552303.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」