函数指针与指针函数
刚开始学习这两个知识的时候,云里雾里的,啥意思啊,有啥区别,怎么使用...
指针函数:int *add(int a, int b);
函数指针:int (*add)(int a, int b);
- 如何区别两者
其实就是多了一个括号,但两者的含义却完全不同,如何记住两者的区别,哪个是函数指针,哪个是指针函数?
一句话:“和谁近就和谁亲(右结合)!”
int *add(int a, int b);
先看此句:函数名离“()”近,首先他是个函数吧,他是个什么样的函数呢?他是一个含有两个参数int a、int b,并且返回指向int类型的指针的函数。一句话,函数add有两个参数int a、int b,函数返回值是个指针,指向一个int的值,所以他叫指针函数add。
int (*add)(int a, int b);
再看此句:用“()” 把 “*” 和 “add” 包起来了,那当然函数名离 “*” 近,OK!那他首先就要是个指针了,既然是指针,总要有个指向吧,这个指针是什么样子的,他指向一个参数为int a、int b,并且返回值为int的函数。所以他叫函数指针add。
你看两者是不是谁离得近,就和谁亲!
-
如何使用两者
下次接着写哈。