• 指针函数和函数指针的区别


    函数指针和指针函数从外观上来看只有一个括号的区别

    函数指针 int (*add)(int a,int b);
    指针函数 int *add(int a,int b);

    使用函数指针可以将该指针指向任意函数的首地址,可以在源码编译阶段就定义好机器指令,通过函数指针指向这段机器指令的首地址(C语言编译时,函数将被直接编译成机器指令),从而让c语言直接执行机器指令提升效率更贴近底层。

    指针函数表示的是一个函数,但是函数返回的值是一个指针。

    函数指针是一个指针,普通的指针指向一个变量的内存地址,但是该指针指向的是一个函数的首地址。

    #include<stdio.h>
    //声明指针函数
    int *add(int a,int b);
    int main(){
        int a=5;
        int b=3;
        //调用指针函数,该函数最后返回的是一个int类型的变量内存地址,所以要用符合条件的指针来接收
        int *c=add(a,b);
        //这里打印的是变量c的内存地址 例如: c=0xbf9932e4
        printf("c=%p 
    ",c);
        return 0;
    }
    //定义指针函数
    int *add(int a,int b){
        int c=a+b;
        //这里返回的是变量c的内存地址
        return &c;
    }
    #include<stdio.h>
    //声明函数指针 addPointer
    int(*addPointer)(int a,int b);
    //声明一个普通函数
    int add(int a,int b);
    
    int main(){
        int a=3;
        int b=5;
        //初始化函数指针addPointer,将其指向add方法
        addPointer=add;
        //调用函数指针指向的函数
        int c=addPointer(a,b);
        printf(" c=%d 
    ",c);
        return 0;
    }
    
    int add(int a,int b){
        int c=a+b;
        return c;
    }
    不和别人一样,不复制只真正理解
  • 相关阅读:
    03JavaScript实现轮播特效21
    03JavaScriptBOM(location...)20
    03JavaScriptBOM(window)19
    03JavaScriptDOM事件18
    03JavaScriptDOM基础17
    03JavaScript函数16
    03JavaScript的流程控制语句15
    03JavaScript语法14
    02css布局案例
    Sublime Text 3 配置 C/C++ 编译器
  • 原文地址:https://www.cnblogs.com/Vinlen/p/13607452.html
Copyright © 2020-2023  润新知