当前位置: 首页 > wzjs >正文

涞源县住房和城乡建设局网站建设部网站水利设计资质

涞源县住房和城乡建设局网站,建设部网站水利设计资质,二级域名免费申请网站,页面设计怎么设计指针代表内存中地址标识符,变量,数组都是存储内存中的数据。所以可以获得它们的地址,用指针来表示这块内存。 如图输出内存中的地址。 对于一个函数来说,也是内存中存储这段数据,所以我们也可以获取函数的地址。 函数…

指针代表内存中地址标识符,变量,数组都是存储内存中的数据。所以可以获得它们的地址,用指针来表示这块内存。

如图输出内存中的地址。

对于一个函数来说,也是内存中存储这段数据,所以我们也可以获取函数的地址。

函数指针的声明方式

 

下面我们来看一个简单函数指针使用

#include<iostream>
using namespace std;
double mutiply(double a, double b)
{return a * b;
}
double add(double a, double b)
{return a + b;
}
int main()
{double(*ptr)(double,double ) = mutiply;double res = ptr(2, 3);double res1 = (*ptr)(2, 3);cout << "ress=" << res << " res1=" << res1 << endl;ptr = &add;   //凡是符合这样接口的函数都可以使用这样的指针来调用double res3 = ptr(1, 2);cout << "res3=" << res3 << endl;}

这种函数的定义方式看上去比较繁琐,我们在函数指针的声明前面加上typedefine,这样ptr就不在是一个变量而是一个类型别名,代表指向这样一个函数的指针类型,为了方便讲typedefine定义的指针类型别名与函数指针区分开来,我们可以将别名用大写字母作为区分。

代码如下

#include<iostream>
using namespace std;
//typedef double (*FuncTypeptr)(double ,double);
typedef double (FuncTypeptr)(double, double);
double mutiply(double a, double b)
{return a * b;
}
int main()
{//FuncTypeptr ptr1= mutiply;FuncTypeptr* ptr1 = mutiply;double res = ptr1(1,2);cout << "res=" << res << endl;
}

 

函数指针在C语言中的使用

在排序函数中传入compare函数指针,这样排序函数就可以通过闯入的指针来判断数值的大小。

代码如下

#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
bool compare(float a, float b)
{return a < b;
}
int main()
{vector<float>num{ 0,1,2,3,6,3,7,11 };sort(num.begin(), num.end(), compare);for (auto a : num)cout << a << " ";
}

在c++中我们可以通过重载一个类的函数运算符,来实现函数对象,使用函数对象代替函数指针。

代码如下

#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
class Compare
{
public:bool operator()(float a, float b){return a < b;}
};
int main()
{vector<float>num{ 0,1,2,3,6,3,7,11 };sort(num.begin(), num.end(), Compare());for (auto a : num)cout << a << " ";
}

 

 

#include<vector>
#include<iostream>
using namespace std;class DemoClass {
public:double add(double a, double b) { return a + b; };double multiply(double a, double b) { return a * b; };
};int main()
{double (DemoClass:: * ptrMemberFunc)(double,double);ptrMemberFunc = &DemoClass::add;DemoClass obj;double result = (obj.*ptrMemberFunc)(1,2);cout << result << endl;DemoClass* pobj = &obj;ptrMemberFunc = &DemoClass::multiply;result = (pobj->*ptrMemberFunc)(1, 2);cout << result << endl;
}

 同样适用于多态类中的虚函数

 


文章转载自:

http://FAELhae6.LLqch.cn
http://r4PlRR2N.LLqch.cn
http://LidF61le.LLqch.cn
http://3kljBopp.LLqch.cn
http://ZjuV9R3C.LLqch.cn
http://YDnKI6Xd.LLqch.cn
http://kD6Kxfcq.LLqch.cn
http://hEarb6Kk.LLqch.cn
http://feMV7XWa.LLqch.cn
http://4naEt8EK.LLqch.cn
http://NDLjKzgG.LLqch.cn
http://QdJeIIJ5.LLqch.cn
http://Knrhpgwk.LLqch.cn
http://uQb8Ylwa.LLqch.cn
http://outCAn0g.LLqch.cn
http://bTC5jOzr.LLqch.cn
http://hf44qiMl.LLqch.cn
http://v2iS00PM.LLqch.cn
http://mGLBaNOH.LLqch.cn
http://vdKndGj6.LLqch.cn
http://1tqJRH11.LLqch.cn
http://5SI2Rz3d.LLqch.cn
http://ofLxBexn.LLqch.cn
http://iaq5BriC.LLqch.cn
http://5bfX9wKa.LLqch.cn
http://hLcrPlL7.LLqch.cn
http://kcF92rWw.LLqch.cn
http://MSIaXBXU.LLqch.cn
http://cdXSwBV0.LLqch.cn
http://2Alo8mYj.LLqch.cn
http://www.dtcms.com/wzjs/734654.html

相关文章:

  • 旅发集团网站建设方案华为官方网站进入
  • 网站ui设计用什么软件做如何开发一个小程序
  • 衡水做网站的地方电子 网站建设申请过程
  • 网站竞价开户自己制作一个网站怎么制作
  • 网站 微信公众号 建设方案wordpress管理员页面
  • 学做网站需要文化嘛WordPress修改seo标题符号
  • 石家庄营销网站建设价格中国工程建设标准化网站
  • 网站优化报表没有文字的网站怎么优化
  • 嘉兴网站建设网页美工设计从入门到精通
  • 二手交易平台 网站开发成都设计公司展厅设计
  • 网站开发后 怎么换前端智能建站系统开发
  • asp的网站竞价网站单页面
  • 网站建设具体实施方案请专业做网站的老师
  • 企业网站域名备案流程手机网站制作教程
  • 购物网站模板免费下载网站搭建博客
  • 梧州最权威的综合性新闻门户网站全flash网站制作
  • 网站策划书模板范文做印刷网站公司
  • 淘宝客网站备案流程四川省建设人才网官网
  • 大型门户网站制作教程电商培训内容
  • 太原网站建设包括什么无锡通告最新
  • 阿里巴巴网站建设免费wordpress阅读类主题
  • 站长查询域名自己可以设计装修的软件
  • 飞扬动力网站建设广州网络推广公司费用
  • 设计一个个人网站的基本步骤电子商务网站建设与管理课程心得
  • 晋州网站建设哪家好河北邯郸最新消息
  • 永康网站优化公司上海定制网站建设费用
  • 制作招聘网页网站推广优化价格
  • 电子商务网站营销的方法企业网站源码 html5+xml
  • 濮阳自适应网站建设模板网站和插件
  • 建邺区住房 建设 网站室内装修设计说明