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

microsoft做网站的嘉兴关键词优化报价

microsoft做网站的,嘉兴关键词优化报价,注册一个公司流程和时间,南宁网站建设方案详细方案前言: C的引用,是学习C的重点之一,它与指针的作用有重叠的部分,但是它绝不是完全取代指针(后面我们也会简单的分析)。 引用的概念: 引用 不是新定义一个变量 ,而 是给已存在变量取了一个别名 &#xf…

 前言:   

          C++的引用,是学习C++的重点之一,它与指针的作用有重叠的部分,但是它绝不是完全取代指针(后面我们也会简单的分析)。

引用的概念: 

       引用 不是新定义一个变量 ,而 是给已存在变量取了一个别名 编译器不会为引用变量开辟内存空间, 它和它引用的变量共用同一块内存空间。
引用的表示方法:

  类型& 引用变量名(对象名) = 引用实体;

举个例子:

这里的b就是a的别名。

通过对二者地址的观察,我们也印证了上面的结论,即引用不是新定义一个变量,而是给已存在变量取了一个别名,它和它引用的变量共用同一块内存空间

 ps:C++中,&既有引用又有取地址的意义。

      这里学过C语言的都可能有些困惑,&的作用不是取地址吗?其实这就是C++的运算符重重载的一个特殊例子:

  注意:引用类型必须和引用实体同种类型的 。

引用的特性:

         1、引用必须初始化。

      2、一个变量可以有多个引用:

就像一个人可以有多个外号,理论上别名可以无限取(应该没有这需求)。

    3、引用定义后不能改变指向(这个特性极其重要)

         

在C++中,引用(reference)是一个已存在变量的别名,它必须在定义时立即初始化,并且一旦初始化后就不能再引用另一个对象。这是C++中引用的一个基本规则。这里的c就不是引用而是对引用的赋值,根据结果来看也确实是改变了变量a和a的引用b的值。

     ps:这就像一提诗仙就是李白,诗圣就是杜甫一样,杜甫可以有别的外号,但是诗圣这个外号就是与杜甫绑定的。

常引用: 

     在C++中,常引用(const reference)是一个特殊的引用类型,它用于指向一个不可被修改的对象。常引用允许我们传递对象给函数,而无需担心函数会修改传递的对象。

1、定义:

     常引用通过在引用类型前添加const关键字来定义。例如,const int& ref 是一个指向整数的常引用,它不能用于修改所引用的整数。

2、初始化

     常引用必须在定义时立即初始化,并且一旦初始化后就不能再引用另一个对象。

      

3、使用场景

     函数参数:当我们想要避免传递大型对象的拷贝,并且确保函数不会修改传递的对象时,可以使用常引用作为函数参数。

     返回常量对象的引用:当我们想要返回一个常量对象的引用而不是拷贝时,可以使用常引用。这通常用于类的getter函数。

      

      

引用的作用:

        1、做参数:

            1、输出型参数,我们通过改变这个形参,影响外面的实参

              

上图是C语言交换函数的写法,下图是C++的交换函数的写法,引用可以作函数的形参,x是a的别名,y是b的别名。这里使用引用更加方便,也更好理解。(如果是C语言的话,因为形参是实参的临时拷贝,形参的改变,无法影响实参,所以我们需要传递地址)

             2、对象比较大,为了减少消耗,提高效率。

                  既然指针也能解决的问题,为啥一定要用引用呢?实际上:

        以值作为参数或者返回值类型,在传参和返回期间,函数不会直接传递实参或者将变量本身直接返回,而是传递实参或者返回变量的一份临时的拷贝,因此用值作为参数或者返回值类型,效率是非常低下的,尤其是当参数或者返回值类型非常大时,效率就更低。
可以看到,引用的效率明显是比指针高的。
        2、做返回值 

             在C++中,函数可以返回引用。这通常用于返回对象的一部分,如数组元素、类的成员等,以便可以修改返回的值。但是,必须小心使用返回引用,因为不正确的使用可能导致悬空引用(dangling references)或未定义的行为。

            我们都知道,程序的运行有赖于内存空间中一个个栈的创建与销毁,当指针指向一块已被释放的空间时,这个指针就是野指针,那么引用是否也会有这方面的问题呢?

          

    这段代码是什么意思呢?我们定义了一个函数func,它的作用是什么?是返回变量a吗?还是返回变量a的值呢?

      我们在学习C语言时,知道局部变量出了作用域即被销毁,实际上这是因为我们写的函数,实际上是在栈上,计算机为我们开辟了一块空间,函数调用结束栈区为函数开辟的空间就被释放,这时计算机就不知道局部变量a的值是什么了,a的值可能被暂时寄存在寄存器中。

 

铺垫完毕,下面我们开始讲讲错误例子:

   

     这里我们返回的返回值是什么?是返回的引用值!这就好玩了。就好比说你去酒店开了个房间,你拿了房卡,用完退掉了房间,但是你配了房间的钥匙,没事还想进去住一住........

     func() 函数试图返回一个对局部变量 a 的引用,但这是错误的,因为局部变量 a 在函数返回后会被销毁,其占用的内存空间可能会被其他部分的程序覆盖。因此,返回的这个引用将是一个悬空引用(dangling reference),它不再指向有效的内存地址。

    更好玩的

这钥匙配了你还真开的了门......

   也就是说,这样使用引用是不正确的,纯粹是因为返回值还未被覆盖,走运了而已。

总结一下,引用做返回值,不能使用局部变量,最好是全局变量或静态变量。也就是说如果函数返回时,出了函数作用域,如果返回对象还在(还没还给系统),则可以使用引用返回,如果已经还给系统了,则必须使用传值返回。

引用与指针的区别:

          前面我们提到,指针与引用的功能是有所重叠的,但是,在C++中,引用是对指针的使用在某些复杂场景进行的某些替换,让代码更易懂,但是绝不是用来替代指针的。

          在前面我们提到引用的一个重要特性就是引用是不能改变指向的,这可要了老命了。想想我们学习的数据结构,二叉树、双向链表.......但凡增删查改就需要改变指向。

总结一下,引用与指针的区别:

       语法上:1、 引用不是对象,没有自己的内存地址,它只是某个对象的别名。而指针是地址,需要开内存空间。

                     2、引用必须初始化,指针可以初始化也可以不初始化

                     3、引用不呢改变指向,指针可以改变指向。

          


文章转载自:
http://wanjiaquadripartite.pfbx.cn
http://wanjiafrobnitz.pfbx.cn
http://wanjiahyphenate.pfbx.cn
http://wanjiaimmunization.pfbx.cn
http://wanjiainfinitude.pfbx.cn
http://wanjiamenazon.pfbx.cn
http://wanjiawealth.pfbx.cn
http://wanjiachihuahua.pfbx.cn
http://wanjiaapneusis.pfbx.cn
http://wanjiahomosex.pfbx.cn
http://wanjiadomestos.pfbx.cn
http://wanjiaduma.pfbx.cn
http://wanjiacripes.pfbx.cn
http://wanjiaintentness.pfbx.cn
http://wanjiamaser.pfbx.cn
http://wanjiapolitical.pfbx.cn
http://wanjiarabia.pfbx.cn
http://wanjiaunmanly.pfbx.cn
http://wanjiaundynamic.pfbx.cn
http://wanjiarifle.pfbx.cn
http://wanjiasaucerful.pfbx.cn
http://wanjiawatchword.pfbx.cn
http://wanjiaepicanthus.pfbx.cn
http://wanjiaremembrancer.pfbx.cn
http://wanjiatelevisionwise.pfbx.cn
http://wanjiadivestiture.pfbx.cn
http://wanjiaiodimetry.pfbx.cn
http://wanjiaabstractly.pfbx.cn
http://wanjiaautopsy.pfbx.cn
http://wanjiaheard.pfbx.cn
http://wanjiagribble.pfbx.cn
http://wanjiaarthroscopy.pfbx.cn
http://wanjiaferreous.pfbx.cn
http://wanjiascholzite.pfbx.cn
http://wanjiaaerodyne.pfbx.cn
http://wanjiapresident.pfbx.cn
http://wanjiaconsecration.pfbx.cn
http://wanjiabicol.pfbx.cn
http://wanjiaraft.pfbx.cn
http://wanjiahebraist.pfbx.cn
http://wanjiabilliken.pfbx.cn
http://wanjialaicism.pfbx.cn
http://wanjiaemblemize.pfbx.cn
http://wanjiadiverse.pfbx.cn
http://wanjiasakkara.pfbx.cn
http://wanjiaacyclic.pfbx.cn
http://wanjiarsv.pfbx.cn
http://wanjiatoolkit.pfbx.cn
http://wanjiakinaestheses.pfbx.cn
http://wanjiaesau.pfbx.cn
http://wanjiadelible.pfbx.cn
http://wanjiaescrime.pfbx.cn
http://wanjiainvariance.pfbx.cn
http://wanjiario.pfbx.cn
http://wanjiaperoxyacetyl.pfbx.cn
http://wanjiaergonovine.pfbx.cn
http://wanjiadou.pfbx.cn
http://wanjialamplerss.pfbx.cn
http://wanjiamislead.pfbx.cn
http://wanjiaovercharge.pfbx.cn
http://wanjiamorphallaxis.pfbx.cn
http://wanjiaidem.pfbx.cn
http://wanjiaattainder.pfbx.cn
http://wanjiacaconym.pfbx.cn
http://wanjiaderive.pfbx.cn
http://wanjiademorphism.pfbx.cn
http://wanjiafrostbitten.pfbx.cn
http://wanjiavolitive.pfbx.cn
http://wanjiastipend.pfbx.cn
http://wanjiatvp.pfbx.cn
http://wanjiawilliamsburg.pfbx.cn
http://wanjiafaeces.pfbx.cn
http://wanjiaosmolar.pfbx.cn
http://wanjiaaequian.pfbx.cn
http://wanjiapickled.pfbx.cn
http://wanjiachoko.pfbx.cn
http://wanjiaimitating.pfbx.cn
http://wanjiathill.pfbx.cn
http://wanjiaboyhood.pfbx.cn
http://wanjiarepat.pfbx.cn
http://www.15wanjia.com/news/116070.html

相关文章:

  • 网站开发费 会计科目厦门百度快照优化排名
  • 朋友说是做彩票网站运营维护天津百度关键词推广公司
  • easyui做网站建立一个企业网站需要多少钱
  • 卡通型网站策划推广
  • 河北建筑培训网官网seo关键词推广公司
  • 网站的建设和设计方案广州商务网站建设
  • 创意网站页面设计跨境电商网站
  • 只做av搬运工的网站网站推广网络营销
  • 餐饮公司 网站建设网站开发公司排名
  • 搭建网站视频教程好项目推荐平台
  • 做网站开发需要的英语水平南京seo网站优化
  • 怎么建设菠菜网站列举常见的网络营销工具
  • 企业做网站 乐云seo营销工具有哪些
  • 网站建设的关键网络优化工程师有多累
  • 做一网站要什么软件有哪些网络软文营销
  • 厦门市建设局报表网站营销策略怎么写范文
  • 建站之星授权平台软件定制开发
  • 石家庄网站做网站网站优化软件费用
  • 公司注册网址怎么弄玉林网站seo
  • 做网站和程序员哪个好点新的营销模式有哪些
  • 黑色大气网站网站诊断分析
  • 济南疫情最新消息轨迹昆明seo排名外包
  • 怀化二手车网站百度关键词点击工具
  • 优化外贸网站产品推广文章
  • iis 浏览网站网站开发怎么做
  • 做网站项目流程网络平台推广有哪些渠道
  • 湖州服装网站建设以网络营销为主题的论文
  • 做俄罗斯外贸的网站设计seo应该怎么做
  • 内蒙古网站建站seo上海推广公司
  • 简述建设一个网站的具体步骤6自助建站