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

来源:互联网 发布:卡密源码 编辑:程序博客网 时间:2024/05/16 19:33

1.指针函数

    int *f(int a, int b);  

     此函数有返回值,返回值为int *,即返回值是指针类型的。首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说指针函数一定有函数返回值,而且在主调函数中,函数返回值必须赋给同类型的指针变量。

    让指针标志 * 与int紧贴在一起,而与函数名f间隔开,这样看起来就明了些了,f是函数名,返回值类型是一个int类型的指针。

    注意:指针函数与函数指针表示方法的不同,千万不要混淆。最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是函数指针,反之则是指针函数。指针函数与函数指针表示方法的不同,千万不要混淆。最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是函数指针,反之则是指针函数。


2.函数指针

函数指针是指向函数的指针变量,即本质是一个指针变量。但这个指针指向的函数,不是普通的基本数据类型或者类对象。

int (*f)(int a, int b); // 声明函数指针 

当然,函数指针的返回值也可以是指针。

函数指针与指针函数的最大区别是函数指针的函数名是一个指针,即函数名前面有一个指针类型的标志型号“*”。

   int (*f) (int x); /* 声明一个函数指针 */ 

   f=func;/* 将func函数的首地址赋给指针f */ 

0 0
原创粉丝点击