函数指针(Function Pointer):
- 定义: 函数指针是指向函数的指针,它存储了函数的地址。函数的二制制代码存放在内存四区中的代码段,函数的地址它在内存中的开始地址。如果把函数的地址作为参数,就可以在函数中灵活的调用其它函数。
- 用途: 函数指针可以用来在运行时动态选择调用哪个函数,或者将函数作为参数传递给其他函数。
使用函数指针的三个步骤:
a)声明函数指针;
b)让函数指针指向函数的地址;
C)通过函数指针调用函数。
// 声明一个函数指针
int (*add)(int, int);// 将函数地址赋给函数指针
add = ∑// 使用函数指针调用函数
int result = add(3, 4);
回调函数是一种在编程中常见的概念,它是指一个函数作为参数传递给另一个函数,并在特定事件发生时被调用。
void show(void (*pf)()){pf();
}void zs(){cout << "我是大爸爸"<<endl;
}void ls(){cout << "我是小爸爸"<<endl;
}int main(){
show(zs);
show(ls);
}
传参方式1:
void show(void (*pf)(int)){int c =0;pf(c);
}void zs(int a){cout << "我是大爸爸"<<endl;
}void ls(int b){cout << "我是小爸爸"<<endl;
}int main(){
show(zs);
show(ls);
}
传参方式1:
void show(void (*pf)(int),int c){pf(c);
}void zs(int a){cout << "我是大爸爸"<<endl;
}void ls(int b){cout << "我是小爸爸"<<endl;
}int main(){
int c=0;
show(zs,c);
show(ls,c);
}
指针函数
指针函数是指返回类型为指针的函数。它与一般的函数不同,因为它的返回值是一个指针,而不是基本数据类型或结构体。
指针函数的使用场景可能包括:
动态内存分配: 返回指向动态分配内存的指针,允许在堆上分配内存。
返回数组或字符串: 返回指向数组或字符串的指针,这在处理字符串或数组时很有用。
函数指针返回类型: 在某些情况下,函数指针也可以被认为是一种指针函数。函数指针指向函数而不是数据,但它们的返回类型是指针。
#include <iostream>// 定义一个指针函数,返回整数指针
int* createInteger() {int* ptr = new int; // 在堆上分配内存*ptr = 42; // 设置指针指向的值return ptr; // 返回指针
}int main() {// 调用指针函数,得到一个整数指针int* result = createInteger();// 使用指针指向的值std::cout << "Value created by pointer function: " << *result << std::endl;// 记得释放在堆上分配的内存delete result;return 0;
}