指针函数
指针函数即返回指针的函数。其一般定义形式如下:
类型名 *函数名(函数参数列表);
其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其返回值的类型为指针。当调用这个函数后,将得到一个“指向返回值为…的指针(地址),“类型名”表示函数返回的指针指向的类型。
“(函数参数表列)”中的括号为函数调用运算符,在调用语句中,即使函数不带参数,其参数表的一对括号也不能省略。其示例如下:
int *pfun(int, int);
由于“*”
的优先级低于“()”
的优先级,因而pfun首先和后面的“()”
结合,也就意味着pfun是一个函数。即:
int *(pfun(int, int));
接着再和前面的“*”结合,说明这个函数的返回值是一个指针。
由于前面还有一个int,也就是说,pfun是一个 【返回值为int型指针】 的函数。
指针函数与函数指针的区别
int (*pfun)(int, int);
通过括号强行将pfun首先与“*”
结合,也就意味着,pfun是一个指针。接着与后面的“()”
结合,说明该指针指向的是一个函数。然后再与前面的int结合,也就是说,该函数的返回值是int。
由此可见,pfun是