普通函数:
int func(int a)
{
return a;
}
返回值是 int 类型的数值
指针函数:
定义: 返回指针的函数,本质是一个函数,该函数返回值是一个指针。
格式:类型标识符 * 函数名(参数列表)
int *func(int a);
int *func(int a)
{
int *p = (int *)malloc(sizeof(int));
memset(p, 0, sizeof(int));
*p = a + 10;
return p;
}
int main()
{
int a = 10;
int *b = func(a);
cout << *b << endl;
delete b;
}
函数指针:指向函数的指针,本质是一个指针变量,该指针指向函数。
格式: 类型说明符 (*函数名)(参数)
函数指针需要把一个函数的地址赋值给他
add_func = add1;
add_func = &add2;
函数指针调用:
int c1 = add_func(10);
int d = (*add_func)(10);
int(*add_func)(int a);
int add1(int a)
{
return a + 10;
}
int add2(int a)
{
return a + 100;
}
int main()
{
add_func = add1;
int c = (*add_func)(10);
int c1 = add_func(10);
cout << c << endl;
cout << c1 << endl;
add_func = &add2;
int d = (*add_func)(10);
int d1 = add_func(10);
cout << d << endl;
cout << d1 << endl;
}
区别:
指针函数 是一个函数,返回指针
函数指针 是一个指针,指向函数
定义、与使用方法不同。