function's pointer
·cpp
#copy-and-move-objects
函数指针
函数指针(Function Pointer)是指向函数的指针变量,可以用它来调用函数
它保存了函数的地址,并允许通过指针来调用函数
函数指针的类型取决于被指向的函数的参数类型和返回类型
基本语法:
返回类型 (*指针名)(参数类型);
示例:
# include <iostream>
int add(int a, int b)
{
return a + b;
}
int subtract(int a, int b)
{
return a - b;
}
int main()
{
// 声明一个函数指针,指向返回类型为int、参数类型为int, int的函数
int (*func_ptr)(int, int);
func_ptr = add; // 指向add函数
std::cout << func_ptr(5, 3) << std::endl; // 输出 8
func_ptr = subtract; // 指向subtract函数
std::cout << func_ptr(5, 3) << std::endl; // 输出 2
return 0;
}
在这个例子中,func_ptr 是一个函数指针,指向一个返回int、接受两个int参数的函数
通过 func_ptr 指针,我们可以动态调用不同的函数(add或subtract)
解引用
解引用(Dereferencing)是指通过迭代器或指针来访问指向的对象或数据
在C++中,迭代器和指针类似,都指向容器中的元素或变量,而解引用就是通过它们访问或操作该元素的值
对于指针,解引用是使用 * 操作符,访问指针指向的值:
int a = 10;
int* p = &a; // p是a的地址
std::cout << *p; // 解引用,输出10
对于迭代器,解引用也是使用 * 操作符,访问迭代器所指向的容器元素:
std::vector<int> v = {10, 20, 30};
auto it = v.begin();
std::cout << *it; // 解引用,输出10