导语:今天学习了一下指针函数和函数指针,联想到之前的指针数组,遂做个笔记简单记录一下二者的区别。
一. 指针数组与数组指针
- 指针数组:一个数组里面放的全是指针
- 数组指针:有一个指针,指向了数组的首地址
int *p[10]; //指针数组
int (*p)[10]; //数组指针
二. 指针函数与函数指针
- 指针函数:函数的返回值类型是指针
- 函数指针:有一个指针,其指向了一个函数地址
int* add(int a,int b){} //指针函数
int (*p)(int ,int); //函数指针
p = add; //赋值
*p(1,2) //调用
注:
① 函数的地址即函数名
② 函数指针本质上是一个指针,其指向该函数地址
③ 指针函数本质上是一个函数,其返回值类型为指针
三. 指针常量与常量指针
- 指针常量:即*在const前,指针的指向不可以更改,但指针里的值可以更改
- 常量指针:const在*前,指针里的值可以更改,但指向不可以更改
int* const p; //指针常量
const int *p; //常量指针
int const *p; //常量指针