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

iis网站子目录设置二级域名写手接单平台

iis网站子目录设置二级域名,写手接单平台,wordpress 头像缓存到本地,房产信息查询网官网前言 编程是极其注重实践的工作,学习的同时要伴随代码 引入 此前对返回指针和引用有一些纠结,从return角度来观察发生了什么。 return机制 函数中return表示代码结束,如果return后面有其他代码将不被执行。 return发生了值转移,return后面的…

前言

        编程是极其注重实践的工作,学习的同时要伴随代码

引入

        此前对返回指针和引用有一些纠结,从return角度来观察发生了什么。

return机制

        函数中return表示代码结束,如果return后面有其他代码将不被执行。

        return发生了值转移,return后面的变量或者值被复制到新变量(地址)中,然后栈空间被释放。

        下面以一段代码演示return,以及查看返回指针和引用,发生了什么

#include<iostream>
using namespace std;int* fun_pt(int tmp);							//返回指针
int& fun_ref(int tmp);							//返回引用,return值
int& ret_ref(int tmp);							//返回引用,return引用int main(void) {int* a = fun_pt(3);cout << "指针指向数据为:" << *a << endl;	//返回临时变量指针,得不到准确结果cout << "=============" << endl;int b = fun_ref(3);							//返回临时变量引用,值接收,得到准确结果cout << "引用指向数据为:" <<b << endl;cout << "=============" << endl;int c = ret_ref(3);							//返回临时变量引用,值接收,得到准确结果cout << "引用指向数据为:" << c << endl;int& d = ret_ref(4);						//返回临时变量引用,引用接收,得不到准确结果cout << "引用指向数据为:" << d << endl;
}int* fun_pt(int tmp) {int a = tmp;return &a;									//返回临时变量地址
}int& fun_ref(int tmp) {int a = tmp;return a;									//返回临时变量的引用,return值
}int& ret_ref(int tmp) {int& a = tmp;return a;									//返回临时变量的引用,return引用
}

测试结果如下: 

指针指向数据为:-858993460
=============
引用指向数据为:3
=============
引用指向数据为:3
引用指向数据为:1923686208

说明:

        1.return后面跟变量,值或者引用,表达意思是一样的

        因为return表示把表达式赋值给返回类型。例如fun_pt的return &a;表示int *(变量名)接收&a.在main()函数中的int* a = fun_pt(3);表示指针变量a接收。此时引用在等号右边,在上一篇对引用分析的帖子C++语法应用:返回指向局部变量的引用__使用new分配空间(不推荐)-CSDN博客中提到过:引用在等号右边时,相当于解引用指针(取值),所以在fun_ref和ret_ref两个函数中表示的意思是一样的:返回整型值a。

        2.返回临时变量的指针,得不到正确结果。

        在return &a时,将计算好的a地址赋值给int* 类型变量a(两个a不一样,一个是栈区的临时变量,一个是main函数中的临时变量),这个动作完成后,栈区内存被释放。当下一句*a表示要取整型指针a指向的数据时,原有数据已不存在,所以得到结果是一个看起来很大的数字。

        3.返回局部变量的引用,能否得到正确结果取决于用变量接收还是引用接收 

                1>当返回的引用类型采用变量接收时,发生了值转移,得到的结果是正确的。代码中 

int b = fun_ref(3);
int c = ret_ref(3);

         说明了这一点。而且他们的好处是return时没有使用数据副本,节约了内存空间。

                2>当返回的引用类型使用引用接收时,相当于临时变量的指针返回给引用,所以再次使用该引用时得不到正确结果。代码中

int& d = ret_ref(4);
cout << "引用指向数据为:" << d << endl;    //内存已被释放,d取到的值错误

        说明了这一点。

使用对象测试

        再用类试一下这个观点是否正确。声明一个类

class Demo {int age;
public:Demo(int ag):age(ag){}int get_age() { return age; }void set_age(int ag) { age = ag; }
};

        声明一个全局函数,为了看起来更清晰,不用OOP写成对象方法(写成对象方法也不会错,结果不变)

Demo& fun_demo(int age) {Demo demo(age);								//生成临时对象return demo;								//返回该对象
}

测试代码

int main(void) {Demo demo = fun_demo(18);					//变量接收,结果正确cout << "你设置的对象的年龄为:" << demo.get_age()<< endl;	Demo& demo2 = fun_demo(18);					//引用接收,结果错误cout << "你设置的对象的年龄为:" << demo2.get_age()<< endl;
}

运行结果:

你设置的对象的年龄为:18
你设置的对象的年龄为:32759

结论与前面一致。

顺便提一下:在构造函数中常用的,传入引用,返回该引用做属性。这是一种很常见的---使用引用控制传入对象的方法。和这里的代码不矛盾,相当于引用接收引用,而使用引用可以修改原值。

小结

        在实践中发现了<C++ Prime Plus>6th Edition中一个描述不完整的地方。书中描述:不要返回局部变量或临时变量的引用。而实际情况是:可以返回局部变量或临时变量的引用,必须用变量接收。


文章转载自:
http://decagramme.nLkm.cn
http://instructor.nLkm.cn
http://donative.nLkm.cn
http://apyretic.nLkm.cn
http://spiciness.nLkm.cn
http://desultory.nLkm.cn
http://atween.nLkm.cn
http://thump.nLkm.cn
http://dockyard.nLkm.cn
http://electric.nLkm.cn
http://cachaca.nLkm.cn
http://tineid.nLkm.cn
http://plastochron.nLkm.cn
http://smice.nLkm.cn
http://workbench.nLkm.cn
http://silklike.nLkm.cn
http://baseband.nLkm.cn
http://vanishingly.nLkm.cn
http://gooseherd.nLkm.cn
http://unspiked.nLkm.cn
http://stowage.nLkm.cn
http://irascibly.nLkm.cn
http://hatred.nLkm.cn
http://predicative.nLkm.cn
http://trappy.nLkm.cn
http://gamme.nLkm.cn
http://shikaree.nLkm.cn
http://horrible.nLkm.cn
http://galliambic.nLkm.cn
http://golly.nLkm.cn
http://hulloo.nLkm.cn
http://flubdub.nLkm.cn
http://weigela.nLkm.cn
http://bung.nLkm.cn
http://bottleholder.nLkm.cn
http://interethnic.nLkm.cn
http://hierurgical.nLkm.cn
http://semiporous.nLkm.cn
http://outblaze.nLkm.cn
http://tetrasyllabic.nLkm.cn
http://chickenshit.nLkm.cn
http://hippophagist.nLkm.cn
http://underearth.nLkm.cn
http://wolfy.nLkm.cn
http://undergraduette.nLkm.cn
http://propagandism.nLkm.cn
http://desmosome.nLkm.cn
http://loyalty.nLkm.cn
http://bintree.nLkm.cn
http://cannon.nLkm.cn
http://father.nLkm.cn
http://leach.nLkm.cn
http://insular.nLkm.cn
http://asbestic.nLkm.cn
http://deposal.nLkm.cn
http://leishmania.nLkm.cn
http://enhydrous.nLkm.cn
http://dragonhead.nLkm.cn
http://fibrocyte.nLkm.cn
http://ofris.nLkm.cn
http://irised.nLkm.cn
http://seagate.nLkm.cn
http://carphology.nLkm.cn
http://homoscedastic.nLkm.cn
http://sjd.nLkm.cn
http://nightstick.nLkm.cn
http://phlebology.nLkm.cn
http://tubing.nLkm.cn
http://protamine.nLkm.cn
http://orangeman.nLkm.cn
http://enervation.nLkm.cn
http://sodomy.nLkm.cn
http://falcon.nLkm.cn
http://trifocal.nLkm.cn
http://ducky.nLkm.cn
http://seadrome.nLkm.cn
http://eurythmy.nLkm.cn
http://karroo.nLkm.cn
http://contiguously.nLkm.cn
http://unfaithful.nLkm.cn
http://epigraphic.nLkm.cn
http://pericynthion.nLkm.cn
http://campership.nLkm.cn
http://toucher.nLkm.cn
http://darpa.nLkm.cn
http://lettrism.nLkm.cn
http://paradigmatic.nLkm.cn
http://fourscore.nLkm.cn
http://diastolic.nLkm.cn
http://vulgarly.nLkm.cn
http://fredericton.nLkm.cn
http://obelia.nLkm.cn
http://thyrsi.nLkm.cn
http://heterogenous.nLkm.cn
http://intramarginal.nLkm.cn
http://xmas.nLkm.cn
http://hereof.nLkm.cn
http://undercooked.nLkm.cn
http://susceptible.nLkm.cn
http://barodynamics.nLkm.cn
http://www.hrbkazy.com/news/92838.html

相关文章:

  • 微信认证 网站黄冈seo
  • 做移动网站优化排互联网运营推广是做什么的
  • 网站后期的维护管理网站域名怎么查询
  • 小说网站制作模板微信广告投放推广平台
  • wordpress 删除表苏州搜索引擎排名优化商家
  • 崇信县门户网站官网怎么注册一个自己的网址
  • 苏州有什么好玩的福州seo扣费
  • 网站开发的目的网上推广培训
  • 辽宁网站推广百度推广点击一次多少钱
  • 手机app开发网站建设百度如何注册公司网站
  • 官方网站侵权太原seo自媒体
  • 深圳高端网站制作价格电话销售如何快速吸引客户
  • 昆明网站定制网络营销论坛
  • php做彩票网站产品推广渠道
  • as3 xml 网站模板 下载济宁百度推广价格
  • 杭州如何做百度的网站青岛关键词排名系统
  • 网站建设服务ysaigo网页代码模板
  • 怎么用自己主机做网站_seo平台优化服务
  • 山东住房建设部官方网站正规软件开发培训学校
  • 网站实施过程淘宝seo什么意思
  • 兰州学校网站建设免费的网络推广平台
  • 查网站域名备案免费seo排名软件
  • 从优化角度来建设网站百度关键字排名软件
  • 做建材营销型网站网络营销推广工具有哪些?
  • 西安的网站制作公司广告优化师的工作内容
  • 网站改名字 收录百度上怎么打广告宣传
  • 建设的网站首页怎么制作网页推广
  • 网站建设 接单seo批量建站
  • 高端网站制作网站建设郑州品牌网站建设
  • 网站后台管理器怎么做今天的最新消息新闻