指针(数组、常量、函数)

指针数组、指针常量、指针函数

指针是C/C++特有的结构类型,也是最难理解的部分,有很多容易混淆的相关术语,rt。指针本身是个数据类型,指向特定数据。我们可以这样理解:指针对应与一个仪表盘的指针,其指向的地址就是表盘上数据。

  • 指针数组与数组指针
  • 指针常量与常量指针
  • 指针函数与函数指针

记忆方法有很多,不理解的时候就死记呗,然后用的时候慢慢领悟。上面上个记起来其实很简单,怎么念的通就是怎么个意思,如下:

指针数组:存放指针数组,还能读成别的么?只有这么读这个词才有意义。int *p[]
数组指针:指向数组指针;int (*p)[]

指针常量:这个指针常量;int * const p
常量指针:指向常量指针;int const *p

指针函数:返回指针函数; int* f()
函数指针:指向函数指针 int (*f)(); f=fun; int fun()

最后一个也是最好理解的,在此不赘述。
指针常量,既然这个指针是常量,那么指针指向不能更改,但是指针指向的内容可以改变,也就是说,仪表盘上的指针现在锁死不能摆动了,但是表盘是可旋转的了。
常量指针,指向常量的指针,也就是指针所指向的内容是常量,不可变,但是指针可以指向别处。也就是说,仪表盘指针可以转动,但是表盘是固定的。

指针数组与数组指针
A)int *p[];指针数组
B)int (*p)[];数组指针
我们可以根据符号优先级来理解,括号优先级高于星号,只看变量p的类型,可知A中p是一个数组,而B中p是一个指针。有了p的类型,剩下的就是类型的功能了,比如,A中p是数组,那这个数组的功能是……存指针,再比如,B中的p是指针,这个指针的功能是……指向数组咯。

怎么解释好理解好记忆,并且不失其本身意义,是教育者该考虑的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章