您的位置:首页 > 编程语言 > C语言/C++

C++ 学习笔记

2017-10-10 09:48 155 查看

指针函数 & 函数指针

指针函数 : 实质上还是一个函数,是一个函数,他的返回值的类型是指针,这样的函数叫做指针函数。

函数指针 : 是一个指针类型的变量,它指向一个函数的首地址,可以通过调用这个指针相当于调用这个函数。

int *f(int a, int b) {
int *p = (int *)malloc(sizeof(int));
printf("The memeory address of p = 0x%x \n", p);
memset(p, 0, sizeof(int));
*p = a + b;
printf("*p = %d \n", *p);

return p;
}

// 函数指针 :

/*
* 求最大值
* 返回值是int类型,返回两个整数中较大的一个
*/
int max(int a, int b) {
return a > b ? a : b;
}

/*
* 求最小值
* 返回值是int类型,返回两个整数中较小的一个
*/
int min(int a, int b) {
return a < b ? a : b;
}

int (*f)(int, int); // 声明函数指针,指向返回值类型为int,有两个参数类型都是int的函数  这个地方必须声明

int _tmain(int argc, _TCHAR* argv[])
{
printf("------------------------------ Start\n");

f = max; // 函数指针f指向求最大值的函数max  也可以用取地址解决
int c = (*f)(1, 2);   // 也可以不加括号 直接 f(1,2);

printf("The max value is %d \n", c);

f = min; // 函数指针f指向求最小值的函数min
c = (*f)(1, 2);

printf("The min value is %d \n", c);

printf("------------------------------ End\n");
getchar();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++