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

wordpress更新主题后错误500郑州seo网络营销

wordpress更新主题后错误500,郑州seo网络营销,自己做网站主机,如何开发小程序微信前言 编程是极其注重实践的工作,学习的同时要伴随代码 引入 此前对返回指针和引用有一些纠结,从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://www.laogonggong.com/news/2981.html

相关文章:

  • 何做好网站建设销售找回原来的百度
  • 珍岛做网站怎么样全国各城市疫情高峰感染高峰进度
  • 网站开发收费标准上海百度seo优化
  • 做网站公司介绍ppt推广策略包括哪些内容
  • 学做电商新手入门免费seo排名网站
  • 公司做网站的费用怎么记账产品推广活动策划方案
  • wordpress免费 模板重庆seo教程搜索引擎优化
  • 怎么建企业自己的网站吗seo测试
  • 做网站还是小程序查询网 域名查询
  • 起名最好的网站排名无锡做网站的公司
  • 怎么做网站优化推广百度有哪些app产品
  • 最专业的企业营销型网站建设价格友情链接是外链吗
  • 网站建设开发报价明细seo查询 站长之家
  • 工地模板图片站长工具的使用seo综合查询排名
  • 长沙做网站需要多少钱app地推网
  • 为什么现在建设银行要下载网站激活码交友网站有哪些
  • 企业类网站模板西安网站seo哪家公司好
  • 汽修厂做网站有什么好处今天宣布疫情最新消息
  • 网站开发量计算百度搜索引擎优化的养成良好心态
  • 现在哪个网站做网站好腾讯体育nba
  • 网站策划与建设阶段的推广搜索关键词的工具
  • 网站推广要点免费网络推广方式
  • 福州专业网站搭建排名网上营销怎么做
  • wordpress主题手机版seo服务是什么
  • 深圳公司网站建设服务为先精准营销包括哪几个方面
  • 做网站都能用什么做百度关键词的费用是多少
  • 站长之家是干嘛的网络营销带来的效果
  • 甘肃疫情最新资讯视频优化是什么意思
  • 密山网站建设北京培训seo哪个好
  • 在360网站上怎么做推广友情链接也称为