理解了C语言基础变量定义的概念后,我们再来对应理解C语言指针的定义,指针也是一种变量,也符合变量定义的基本形式:
很多人对指针不理解或者理解不透彻,有两个方面的原因:
1.被指针这个翻译/叫法带偏了。
2.定义指针变量时,被这个*习惯性地用法/写法带偏了
咱们一个一个来解释、纠正和重新理解,
1.指针是一种变量,它的变量类型(变量实体)是一个地址,咱们把“指针”改成“地址变量”,以后碰到指针,就叫做“地址变量”,也就是说这个变量的实体内容是一个地址。
2.定义一个指针变量,习惯性写法是把*靠近变量名,按照C语言变量定义的基本形式<变量类型> <变量名称>,很容易产生错误的理解。那么咱们换一个写法,把*往前写,远离变量名,来看看效果。
以一个整型指针变量的定义为例,画个表格对比两种写法,帮助理解。
以上表格可以清晰的看出,*在变量定义时,是一种变量类型,表明变量是一个指针类型的变量,也就前面说的地址变量。但是,*在变量定义时,需要和其他基础变量类型一起使用,组成意义更具体的变量类型,比如,int 和*一起使用,
int *p;
同样,以表格的形式来帮助理解。
|