C++函数指针与返回指针的函数 数组指针与指针数组 常数指针与指针常量 常函数与返回常量的函数

本文详细介绍了C++中不同类型的指针,包括函数指针、返回指针的函数、数组指针、指针数组、常量指针和指针常量的用法和定义。还讨论了常成员函数和返回常量的函数的概念。并提供了两个复杂的指针声明作为练习题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数指针

int (*funcPrt)(int, int);

首先funcPrt是一个指针,然后看它指向什么东西,剩下的是int …(int, int)所以指向的是一个参数为两个int返回int的函数。

返回指针的函数

int* func(int, int);

小括号优先级高于*,因此首先func是一个函数。剩下的是int* …,所以是一个返回int*的函数。

数组指针

int (*arrayPrt)[100];

首先arrayPrt是一个指针。剩下int …[100],所以是指向一个int[100]的指针。

指针数组

int* arrayOfPrt[100];

方括号优先级高于*,因此首先arrayOfPrt是一个数组。剩下int* …,所以是元素为int*的数组。

常数指针

const int* ptrOfConst;

首先是个指针,然后看指向什么,剩下const int,所以是指向const int。

指针常量

int * const ptrWhichIsCosnt;

首先是const的,然后是个指针,最后指向int。
规定是指针常量必须先结合const再结合*。

常成员函数

int func(int x) const {...}

常成员函数不能修改类里的变量。

返回常量的函数

const int func(int x) {...}

练习题

const int** ( * const * const func3)(int(*)(int,int)) = NULL;
int (*(*func5[10])(int(*)(int,int)))(int,int);

func3和func5是什么

GPT:
func3是一个指针,它指向一个函数,这个函数的参数是一个函数指针,返回值是一个指向指针的指针,这个指针指向一个const int
func5是一个数组,数组的每个元素是一个函数指针,这个函数指针指向一个函数,这个函数的参数是一个函数指针,返回值是一个函数指针

func5解析:首先func5是一个数组,然后数组元素是指针,现在看指针指向的是什么,退一个括号。左边是星号右边是小括号那么先看小括号,所以指针指向的是函数,函数的参数是int(*)(int,int)也就是接受两个int返回int的函数指针;然后看左边星号所以函数返回类型是指针,指针指向什么呢?退一个括号,指向一个接受(int,int)返回int的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值