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

这篇具有很好参考价值的文章主要介绍了函数指针和回调函数 以及指针函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

函数指针(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);
}

指针函数

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

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

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

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

  3. 函数指针返回类型: 在某些情况下,函数指针也可以被认为是一种指针函数。函数指针指向函数而不是数据,但它们的返回类型是指针。文章来源地址https://www.toymoban.com/news/detail-810047.html

#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;
}

到了这里,关于函数指针和回调函数 以及指针函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包