寻找C++基础

本文深入探讨了函数指针的概念及其实现方式。介绍了如何声明函数指针并将其指向不同的函数,以及如何通过函数指针调用所指向的函数。

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

函数指针是一个高级的主题,这部分可以跳过或脱脂的只是寻找C++基础。

在指针的教训,你得知一个指针是一个变量,保存另一个变量的地址。函数指针是类似的,除了它指向的变量,它们指向功能!

考虑一个数组的情况:

int nArray[10];

现在你知道了,narray实际上是一个10个元素的数组常量指针。当我们解引用指针(通过narray或narray [索引]),相应的数组元素的返回。

现在考虑以下功能:

就像可以声明一个非恒定指向一个变量,声明一个非恒定指向函数的指针也是可能的。语法这样做最丑的东西,会看到
1
2
// pFoo is a pointer to a function that takes no arguments and returns an integer
int (*pFoo) ();

在* pfoo括号是必要的优先的原因,如int * pfoo()将被解释为一个函数名为pfoo,不带参数,并返回一个指向一个整数。

在上面的代码片段中,pfoo是一个指向函数的指针,没有参数,并返回一个整型数。pfoo可以“点”匹配这个签名的任何功能。

一个函数指针分配函数

有两个你可以做一个指向函数的指针主要的东西。首先,你可以指定一个函数,它:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int foo()
{
}
 
int goo()
{
}
 
int main()
{
    int (*pFoo)() = foo; // pFoo points to function foo()
    pFoo = goo; // pFoo now points to function goo()
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值