LOVEEVER 发表于 2024-9-13 15:49

C语言指针的定义


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

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

int*p;

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

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

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



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

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

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

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




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

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


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

指针是一种变量,它的变量类型(变量实体)是一个地址,咱们把“指针”改成“地址变量”,以后碰到指针,就叫做“地址变量”,也就是说这个变量的实体内容是一个地址。
页: [1]
查看完整版本: C语言指针的定义