指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针,即地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有返回值。而且,在主调函数中,函数返回值必须赋给同类型的指针变量。
形式: 类型标识符 *函数名(参数表)
int *f(x,y)
例如:
float *fun();
float *p;
p=fun(a);
注意函数指针与指针函数的区别,千万不要混淆。最简单的辨别方式就是看函数名前面的指针*号有没有被括号包含,如果被括号包含就是函数指针,反之就是指针函数。
指针函数:
当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。
函数指针指向函数的指针变量,即本质是一个指针变量。
例如:
int (*f)(int x);
f=func();
指向函数的指针包含了函数的地址,可以通过它来调用函数。声明格式是:
类型说明符 (*函数名)(参数)
指针名和指针运算符外面的括号改变了默认的运算符优先级,如果没有圆括号,就变成一个返回×××指针的函数的原型声明。
例如:
void (*fptr)();
把函数的地址赋值给函数指针,可以采用下面两种形式:
fptr=&function;
fprt=function;
取地址运算符是不必须的,因为单单一个函数标识符就表示了它的地址,如果是函数调用,还必须包含一个圆括号括起来的参数表。
函数指针和指针函数最主要的区别就是一个是指针变量,一个是函数,我们必须要正确使用。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。