指针函数 和 函数指针

编程入门 行业动态 更新时间:2024-10-08 14:40:46

<a href=https://www.elefans.com/category/jswz/34/1768268.html style=指针函数 和 函数指针"/>

指针函数 和 函数指针

指针函数 和 函数指针

  • 函数指针

函数类型的指针,或者说是指向函数的指针

//定义普通函数,返回值为int类型
int add(int x,int y)
{return (x+y);
}
//定义相乘的函数,返回值为int类型
int multiply(int xx,int yy)
{return (x*Y);
}//定义函数指针,后面括号是两个参数,参数个数和类型取决于指针P指向的函数
int (*P) (int a,int b); //指针的类型由P指向的函数决定,这里(*p)的前缀是intint main()
{P=add;//P=&add; //让指针指向函数,以上两种写法都可以。因为函数名就代表地址,所以加不加取地址符号都行printf("%d",(*P)(3,5)); //(*P)就相当于是函数名P=&multiply; //改变指针指向printf("%d",(*p)(5,4));
}
  • 指针函数

    ​ 指针类型的函数,或者说函数的返回值类型是指针

    int c;//定义全局变量cint* add(int x,int y)
    {c=x+y;return &c;
    }int * (*p) (int x,int y); //前缀为 int*,说明P指针指向的是int*类型的函数int main()
    {p=add;
    printf("%d",(*p)(3,5));// 由于add函数的返回值是指针类型,所以返回的是地址printf("%d",*(*p)(3,5))//再加一个*号,取地址。}

函数指针的作用可以是可以作为函数的参数


int add(int x,int y)
{return (x+y);
}int addPlus( int (*p) (int x,int y), int m,int n)
{
//其实就相当于是 int (*p)(int x,int y)=add;return (*p)(m,n);}int main()
{printf("%d",addPlus(add,3,5));}

我们也可以定义函数指针数组

int main()
{
int (*f[2]) (int x,int y)=(add,multiply);printf("%d",(*f[0]) (3,5) );//调用add函数printf("%d",(*f[1]) (5,4) );//调用multiply函数}

$$

$$

更多推荐

指针函数 和 函数指针

本文发布于:2024-03-12 02:23:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1730476.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:指针   函数

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!