函数指针和回调函数 以及指针函数

函数指针(Function Pointer):

  • 定义: 函数指针是指向函数的指针,它存储了函数的地址。函数的二制制代码存放在内存四区中的代码段,函数的地址它在内存中的开始地址。如果把函数的地址作为参数,就可以在函数中灵活的调用其它函数。
  • 用途: 函数指针可以用来在运行时动态选择调用哪个函数,或者将函数作为参数传递给其他函数。

使用函数指针的三个步骤:

        a)声明函数指针;

        b)让函数指针指向函数的地址;

        C)通过函数指针调用函数。

 

// 声明一个函数指针
int (*add)(int, int);

// 将函数地址赋给函数指针
add = ∑

// 使用函数指针调用函数
int result = add(3, 4);

        回调函数是一种在编程中常见的概念,它是指一个函数作为参数传递给另一个函数,并在特定事件发生时被调用。

void show(void (*pf)()){
    pf();
}

void zs(){

cout << "我是大爸爸"<

传参方式1:

void show(void (*pf)(int)){
    int c =0;
    pf(c);
}

void zs(int a){

cout << "我是大爸爸"<

传参方式1:

void show(void (*pf)(int),int c){
    
    pf(c);
}

void zs(int a){

cout << "我是大爸爸"<

指针函数

        指针函数是指返回类型为指针的函数。它与一般的函数不同,因为它的返回值是一个指针,而不是基本数据类型或结构体。

指针函数的使用场景可能包括:

  1. 动态内存分配: 返回指向动态分配内存的指针,允许在堆上分配内存。

  2. 返回数组或字符串: 返回指向数组或字符串的指针,这在处理字符串或数组时很有用。

  3. 函数指针返回类型: 在某些情况下,函数指针也可以被认为是一种指针函数。函数指针指向函数而不是数据,但它们的返回类型是指针。

#include 

// 定义一个指针函数,返回整数指针
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;
}

你可能感兴趣的:(开发语言,c++,服务器)