导语:今天学习了一下指针函数和函数指针,联想到之前的指针数组,遂做个笔记简单记录一下二者的区别。
一. 指针数组与数组指针
- 指针数组:一个数组里面放的全是指针
- 数组指针:有一个指针,指向了数组的首地址
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; //常量指针
指针函数与指针数组详解:概念对比与实战应用
本文探讨了指针数组和数组指针的区别,包括指针数组中存放的是指针,而数组指针指向的是数组;同时讲解了指针函数与函数指针,强调了它们的返回值类型和使用场景。还区分了指针常量和常量指针,涉及指针的可变性和常量性。
1421





