[开发资料] C语言指针的定义

[复制链接]
999|6
 楼主| LOVEEVER 发表于 2024-9-13 15:49 | 显示全部楼层 |阅读模式

理解了C语言基础变量定义的概念后,我们再来对应理解C语言指针的定义,指针也是一种变量,也符合变量定义的基本形式:

  1. <变量类型><变量名称>  

  2. int  *p;


很多人对指针不理解或者理解不透彻,有两个方面的原因:

1.被指针这个翻译/叫法带偏了。

2.定义指针变量时,被这个*习惯性地用法/写法带偏了



咱们一个一个来解释、纠正和重新理解,

1.指针是一种变量,它的变量类型(变量实体)是一个地址,咱们把“指针”改成“地址变量”,以后碰到指针,就叫做“地址变量”,也就是说这个变量的实体内容是一个地址。

2.定义一个指针变量,习惯性写法是把*靠近变量名,按照C语言变量定义的基本形式<变量类型> <变量名称>,很容易产生错误的理解。那么咱们换一个写法,把*往前写,远离变量名,来看看效果。

以一个整型指针变量的定义为例,画个表格对比两种写法,帮助理解。

1.png


以上表格可以清晰的看出,*在变量定义时,是一种变量类型,表明变量是一个指针类型的变量,也就前面说的地址变量。但是,*在变量定义时,需要和其他基础变量类型一起使用,组成意义更具体的变量类型,比如,int 和*一起使用,

int *p;
同样,以表格的形式来帮助理解。

2.png
jf101 发表于 2024-9-14 10:27 | 显示全部楼层
int *确实这个是正确的,有时候理解不到位确实会导致问题发生
中国龙芯CDX 发表于 2024-9-19 08:09 | 显示全部楼层
*在变量定义时,是一种变量类型,表明变量是一个指针类型的变量,也就前面说的地址变量。
星辰大海不退缩 发表于 2024-9-20 19:30 | 显示全部楼层
int 和*一起使用指代的是地址
szt1993 发表于 2024-9-23 17:32 | 显示全部楼层
指针是一种变量,它的变量类型(变量实体)是一个地址,咱们把“指针”改成“地址变量”,以后碰到指针,就叫做“地址变量”,也就是说这个变量的实体内容是一个地址
小夏天的大西瓜 发表于 2024-9-26 19:21 | 显示全部楼层
指针其实是地址变量
AdaMaYun 发表于 2024-10-13 17:54 | 显示全部楼层
指针是一种变量,它的变量类型(变量实体)是一个地址,咱们把“指针”改成“地址变量”,以后碰到指针,就叫做“地址变量”,也就是说这个变量的实体内容是一个地址。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

350

主题

2689

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部