博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++学习笔记 -- 函数指针与指针函数
阅读量:5958 次
发布时间:2019-06-19

本文共 673 字,大约阅读时间需要 2 分钟。

函数指针:指向函数的指针,首先它是指针变量(同指向一个整形变量、字符、数组一样),其次它指向一个函数(地址)。

声明:函数类型 (* 指针变量名)(形参列表)

函数类型,指明函数的返回类型,由于()优先级高于*,所以指针变量名外的括号不能少,后面形参列表表示指针变量指向的函数所带的参数列表。

// int max(int, int); int (* p)(int, int) = &max; int a, b, c, d; cout<<"Input 3 numbers:"<
>a; cout<<"b:"; cin>>b; cout<<"c:"; cin>>c; d = p(p(a, b), c); cout<<"Max number:"<
<
y ? x : y; }

上面相当于用函数指针p,代替了max,为什么能这样?

事实上,每一个函数都有一个入口地址,这个地址相当于一个指针,而函数名表示的就是该函数的首地址(入口地址)。这样的话就有:p = &a 同 p = a 等价,下面的代码也是等价的:

// d = (* p)(( *p)(a, b), c); // d = p(p(a, b), c); // d = max(max(a, b), c);

 

指针函数:首先它是一个函数,其次它返回的类型是一个指针。

声明:类型标识符 *函数名(参数列表)

类型标识符,用于限定返回的类型(是指向型、字符型或者数组)

 

参考:

转载地址:http://gvuax.baihongyu.com/

你可能感兴趣的文章
闭包 !if(){}.call()
查看>>
python MySQLdb安装和使用
查看>>
Java小细节
查看>>
poj - 1860 Currency Exchange
查看>>
chgrp命令
查看>>
Java集合框架GS Collections具体解释
查看>>
洛谷 P2486 BZOJ 2243 [SDOI2011]染色
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>