[C语言]指针数组与数组指针,函数指针与指针函数

如何判断已知的是指针数组还是数组指针,还是函数指针亦或指针函数呢?

1. 根据优先级确定它的属性

2. 如果是指针,考虑它指向的内容;如果是数组,考虑长度和类型;如果是函数,考虑参数列表和返回值。

  • 数组指针,指的是数组名的指针,即数组首元素地址的指针。即是指向数组的指针,本质为指针。
  • 指针数组,是数组元素为指针的数组,其本质为数组。
  • 指针函数,是指返回值是指针的函数,即本质是一个函数。
  • 函数指针,是指向函数的指针变量。因此“函数指针”本身首先应是指针变量,只不过指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里指向函数。
例:int(*p)[4]        数组的指针,即数组指针
       int* p[4]         保存整形指针的数组,即指针数组
       int (*p)(  )       指向函数的指针,即函数指针
       int *p(  )          函数,无参数,返回值为整形指针,即指针函数


你可能感兴趣的:([C语言]指针数组与数组指针,函数指针与指针函数)