c语言中指针怎么输出来符号,C语言学习笔记 | 如何简单理解指针符号

本文介绍了C/C++中指针的概念,帮助初学者理解*和&的含义。指针本质是一个存储地址的int类型,*表示取值,&表示取地址。通过实例解析了指针、指针变量的地址及其与所指变量之间的关系,揭示了指针工作的基本原理,并探讨了用int替代指针的可能性。
摘要由CSDN通过智能技术生成

C和C++语言中常常包括大量指针,这常常让初学者们晕头转向。小编初学指针的时候也常常被指针的指针等困扰,写代码时经常因为没有给指针分配应有的空间出错,看代码也是思路混乱。

其实对于指针的逻辑,有一个比较简单的理解方式。*表示取出指向的内容,&表示取出地址。大家碰到指针时,就一层一层地翻译就行了。

通过 double *p;或者double* p;申明一个指向double类型数据的指针p。那么p就是指针类型double*,而*p是double类型,&p则是p所在内存的地址,是int类型。

d6b79ca0794ce299bbfbd3a61a20d83b.png

比如,我们像上图中代码一样,定义p为指向d所在地址的指针。那么&p, p, *p, &d, d这些量之间有什么关系呢?我们先看看指针的原理。

646cc1e59856aa3d8660bf038482729b.png

指针的运行原理如上图所示,即在p != NULL时,p这个指针相当于一个int类型的数,只不过这个数对应的内存上存放着一个double类型的数据罢了。指针p相当于一个地址;*p则是取出地址上存放的数据;&p则是指针p这个变量本身所在的地址。另外,指针占据四个字节的空间,这一点和int类型相同。

5b50dea7c939683c1f3440d58a511c1e.png

所以,上图所示的输出结果具备p==&d && *p==d的特点。

既然指针的本质是int类型,那么我们就大胆一点,试试用int来代替指针是否可行。

41c132e328560d1d50bb1befa0903b2c.png

ccfb9d7065276ae0ce0d3bd8066d76c1.png

运行成功,且满足p==&d && *(double*)p == d。所以进一步说明了指针确实相当于一个存放着地址的int类型。

知道了指针的运行原理,再记住*代表取值,&代表取地址,那么就算是复杂的指针结构也能理清楚了。

635b9275b8af8b0f2606d24561df6f74.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值