一般讲指针与函数时都会以swap函数(交换两个数)来作为引例,想必大家都看过了,此处不再详细讲解。那么什么是指针函数呢?
指针函数
指针函数的定义:指针函数是指带指针的函数,即本质是一个函数。当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。
函数返回类型是某一类型的指针:
int *swap(int *x,int*y);/函数标识符 *函数名(参数表)
解析:
- 这是一个函数;
- 这个函数的返回值是一个地址值;
- 函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值。
- 在主调函数中,函数返回值必须赋给同类型的指针变量。
例如:
float *match();
float *p;
p = match(a);
注意:
函数运行结束后会销毁在它内部定义的所有局部数据,包括局部变量、局部数组和形式参数,函数返回的指针请尽量不要指向这些数据,C语言没有任何机制来保证这些数据会一直有效,它们在后续使用过程中可能会引发运行时错误。