C/C++如何快速区分指针数组|数组指针|函数指针|指针函数

简介: 如何区分这些概念,主要还是看后面两个字,中文表达模式“表语+定性名词”,所以关键的都是后面的这个名词:指针数组:一个数组,数组元素是指针,如: int* p[20];数组指针:一个指针,指向一个数组,如:int(*p)[20];函数指针:一个指针,指向一个函数;

如何区分这些概念,主要还是看后面两个字,中文表达模式“表语+定性名词”,所以关键的都是后面的这个名词:


指针数组:一个数组,数组元素是指针,如:

int* p[20];

数组指针:一个指针,指向一个数组,如:

int(*p)[20];

函数指针:一个指针,指向一个函数;


基本声明形式:返回数据类型 + (*函数名) + (变量类型1,…);


函数指针声明的时候 * 需要和函数名用括号括起来(优先级问题)。


如:

int (*pFun)(int a, int b);


指针函数:一个函数,返回指针类型;


基本声明形式:返回数据类型 + * + 函数名 + (变量类型1,…);


如:

int* pFun(int a, int b);


指向函数指针的数组:一个数组,数组元素是指向函数的指针,也就是函数指针,如:

int (*p[20])(int a, int b);

总结:函数指针的本质是一个指针,而指针函数的本质是一个函数。


相关实例代码多如牛毛,不再赘述。

相关文章
|
5天前
|
存储 安全 编译器
在 C++中,引用和指针的区别
在C++中,引用和指针都是用于间接访问对象的工具,但它们有显著区别。引用是对象的别名,必须在定义时初始化且不可重新绑定;指针是一个变量,可以指向不同对象,也可为空。引用更安全,指针更灵活。
|
2天前
|
算法 索引
单链表题+数组题(快慢指针和左右指针)
单链表题+数组题(快慢指针和左右指针)
8 1
|
12天前
|
存储
如何使用指针数组来实现动态二维数组
指针数组可以用来实现动态二维数组。首先,定义一个指向指针的指针变量,并使用 `malloc` 为它分配内存,然后为每个子数组分配内存。通过这种方式,可以灵活地创建和管理不同大小的二维数组。
|
12天前
|
存储
如何通过指针数组来实现二维数组?
介绍了二维数组和指针数组的概念及其区别,详细讲解了如何使用指针数组模拟二维数组,包括定义与分配内存、访问和赋值元素、以及正确释放内存的步骤,适用于需要动态处理二维数据的场景。
|
12天前
|
存储 算法 C语言
C语言:什么是指针数组,它有什么用
指针数组是C语言中一种特殊的数据结构,每个元素都是一个指针。它用于存储多个内存地址,方便对多个变量或数组进行操作,常用于字符串处理、动态内存分配等场景。
|
12天前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
18 4
|
12天前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
16 4
|
12天前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
14 1
|
22天前
|
存储 编译器 C++
【C++类和对象(下)】——我与C++的不解之缘(五)
【C++类和对象(下)】——我与C++的不解之缘(五)
|
22天前
|
编译器 C++
【C++类和对象(中)】—— 我与C++的不解之缘(四)
【C++类和对象(中)】—— 我与C++的不解之缘(四)