dltshuiyu的个人空间 https://bbs.21ic.com/?733039 [收藏] [复制] [RSS]

日志

函数指针与指针函数

已有 2215 次阅读2017-5-12 16:12 |个人分类:C语言|系统分类:嵌入式系统

(一)指针函数:带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针

     类型标识符    *函数名(参数表)

      int *f(xy);

例:声明一个指针函数,int *mymain(int x);mymain是一个函数指针。

再来看看平时定义函数:

int main(int x)

{

    ...;

    return x;//

}

小结:(1)main是函数名跟mymain一样是函数指针,但不同点是:mian是函数指针常量,mymain是函数指针变量。

(2)mymain = &main;//将函数main地址赋给mymain(取地址&也可以不要),则(*mymain)(20)就等价于main(20).

(3)(*mymain)(20)等价于mymain(20)。或者看起来更符合习惯。

(4)声明区别:int main(int x);//不能声明为int(*main)(int x);

              int (*mymain)(int x);//不能声明为 int mymain(int x);

(二)函数指针:是指向函数的指针变量,即本质是一个指针变量

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

 f=func; /* func函数的首地址赋给指针f,则func()等价于(*f)() ,也等价于f()*/

(三)两则区别:一个是函数,一个是指针变量。

最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是函数指针,反之则是指针函数。



路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)