zoukankan      html  css  js  c++  java
  • 函数返回引用 ,引用传递和指针传递

    总结:
    函数的返回值用于初始化在调用函数时创建的临时对象。
    如果不是引用:会将函数返回值复制给临时对象
    当返回非引用类型,其返回值可以是局部对象,也可以是求解表达式的结果
    返回引用类型:没有复制返回值,返回的是对象本身,千万不要返回局部对象的引用,不要返回指向局部对象的指针
    返回引用时,要求在函数的参数中,包含有以引用方式或指针方式存在的,需要被返回的参数,同时可以利用全局变量,作为返回。还可以返回对象(不是在当前返回引用这个函数中实例化的对象),原因是类成员函数的参数表中都有一个隐含的this指针,指向当前对象的地址。
    返回值为引用时,返回的是地址。
    返回值不是引用时,编译器会给返回值分配一块内存。
    返回引用:调用程序将直接访问返回值。
    通常引用将指向传递给函数的引用,因此调用函数实际上是直接访问自己的一个变量
    返回一个对象时,一般用引用作为返回值。
    “sizeof引用”:得到的是所指变量(对象)的大小
    “sizeof指针”:得到的是指针本身(所指向的变量或对象的地址,这句话可以不看,比较不好理解,可以就理解成是指针本身大小)的大小

    引用传递和指针传递是不同的,虽然它们都是在被调函数栈空间上的一个局部变量,但是任何对于引用参数的处理都会通过一个间接寻址的方式操作到主调函数中的相关变量。而对于指针传递的参数,如果改变被调函数中的指针地址,它将影响不到主调函数的相关变量。如果想通过指针参数传递来改变主调函数中的相关变量,那就得使用指向指针的指针,或者指针引用。

    **可以建立指针变量的引用如
    int i=5;
    int p=&i;
    int * &pt=p;//建立指针变量p的引用pt
    引用变量pt代表一个int 类型的数据对象(即指针变量)

    引用可以参看:http://www.cnblogs.com/floatedclouds/archive/2011/10/13/2209917.html
    ** https://blog.csdn.net/Listening_music/article/details/6921608**
    https://blog.csdn.net/willian0621/article/details/12838157
    https://blog.csdn.net/Xiao__Tian__/article/details/51814617

  • 相关阅读:
    MVC常用跳转页面的方法
    简单工厂模式
    MySQL 查询昨天中午12点到今天中午12点的数据
    Windows安装yarn
    MapStruct
    CSS 3D
    05-序列化器ModelSerializer
    django基础之Django中间件
    04-序列化器Serializer
    03-四大基本模块
  • 原文地址:https://www.cnblogs.com/ymd12103410/p/9592904.html
Copyright © 2011-2022 走看看