一、指针函数
1、定义
指针函数就是返回指针的函数。其本质是一个函数,而该函数返回值是一个指针。
语法形式:返回值类型名 * 函数名 (函数参数)
int* fun(int i, int j);
2、示例
#include <stdio.h>
#include <assert.h>
#include <string.h>
char* myStrcpy(char *dest, const char *src)
{
assert(dest);
assert(src);
char* tmp = dest;
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
return tmp;
}
int main()
{
char arr[20];
char *p = "hello world!";
memset(arr, '\0', sizeof(arr));
char *result = myStrcpy(arr, p);
printf("%s\n", result);
return 0;
}
二、函数指针
1、定义
函数指针就是一个指向函数的指针。首先它是一个指针,该指针指向一个函数。
语法形式:返回值类型名 (*指针变量名) (函数参数)
int (*pfun)(int i, int j)
2、示例
#include <stdio.h>
int Max(int a, int b)
{
if (a > b) {
return a;
}
return b;
}
int main()
{
int (*pfun)(int, int);
pfun = Max;
int result = (*pfun)(2, 3); // 或者 int result = pfun(2, 3);
printf("result = %d\n",result);
return 0;
}