c++引用 订阅
C++是C语言的继承,它可进行过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。引用(reference)就是C++对C语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。 展开全文
C++是C语言的继承,它可进行过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。引用(reference)就是C++对C语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。
信息
常引用
标识符&引用名=目标变量名
外文名
reference
参    数
传递可变参数
中文名
C++引用
解    释
引用引入了对象
C++引用引用说明
(1)&在此不是求地址运算,而是起标识作用。(2)类型标识符是指目标变量的类型。(3)声明引用时,必须同时对其进行初始化。(4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。a为目标原名称,ra为目标引用名。给ra赋值:ra=1; 等价于 a=1;(5)对引用求地址,就是对目标变量求地址。&ra与&a相等。即我们常说引用名是目标变量名的一个别名。别名一词好像是说引用不占据任何内存空间。但是编译器在一般将其实现为const指针,即指向位置不可变的指针。即引用实际上与一般指针同样占用内存。(6)不能建立引用的数组。因为数组是一个由若干个元素所组成的集合,所以无法建立一个由引用组成的集合。但是可以建立数组的引用.例如: int& ref [3]= {2,3,5};//声明ref引用的数组错误但是可以这样写:为什么要加上const ,因为{2,3,5}此时是个字面值数组,是保存在代码段里,只读的属性,如果不加,编译错误,而且后面对ref[0]的赋值也不会成功.需要特别强调的是引用并不产生对象的副本,仅仅是对象的同义词。因此,当下面的语句执行后:pt1.offset(12,12);pt1和pt2都具有(12,12)的值。引用必须在定义时马上被初始化,因为它必须是某个东西的同义词。你不能先定义一个引用后才初始化它。例如下面语句是非法的:Point &pt3;pt3=pt1;那么既然引用只是某个东西的同义词,它有什么用途呢?下面讨论引用的两个主要用途:作为函数参数以及从函数中返回左值。
收起全文
精华内容
下载资源
问答
  • C++引用以及结构体

    千次阅读 2019-03-04 23:00:55
    C++引用 引用在C++编程中极为实用。 函数的参数是属于局部变量,如果想要修改传入的参数,那就要用到指针。 在C++中,还可以使用“引用”。引用不会产生副本,相当于给原来的变量又取了个别名,二者其实都是指...

    计算机考研机试笔记之C/C++基础6

    C++引用

    1. 引用在C++编程中极为实用。
      函数的参数是属于局部变量,如果想要修改传入的参数,那就要用到指针。
      在C++中,还可以使用“引用”。引用不会产生副本,相当于给原来的变量又取了个别名,二者其实都是指同一个东西,且对引用变量的操作就是对原变量的操作。
      引用的使用方法很简单,只需要在函数的参数类型后面加个&就可以了(或者&加在变量前面即可)。
      #include <iostream>
      using namespace std;
      int main() {
          int a = 10;    
      	cout << a << endl; 
      	int &b = a;
      	b = 23;
      	cout << a << endl; 
          return 0;
      }
      
      输出:
      10
      23
      
      可见,程序中对a的引用b的操作,也是对变量a的操作。
      注意:
      要把引用的&跟取地址运算符&区分开来,引用并不是取地址的意思。
    2. 指针的引用
      在指针相关一文中提到的swap(),还可以通过将传入的地址交换来达到交换两个变量的效果。使用引用可以达到这种操作,如下:
      #include <iostream>
      using namespace std;
      //将 int* 型变量的引用作为参数,
      //相当于对原int*变量的操作 
      void swap(int* &p1,int* &p2){
      	int *temp = p1;
      	p1 = p2;
      	p2 = temp;
      }
      int main() {
          int a = 10,b = 23;    
      	int *p1 = &a,*p2 = &b; 
      	//p1 p2为指针变量,存放a b的地址 
      	cout << *p1 << " " << *p2 << endl; 
      	swap(p1,p2);//函数参数为a b的地址,类型为int* 
      	cout << *p1 << " " << *p2 << endl; 
          return 0;
      }
      
      10 23
      23 10
      
      为了理解上的方便,可以“简单”地把int*型理解成unsigned int型,而直接交换这样的两个整型变量是需要加引用的。
      注意:
      引用是产生变量的别名,因此常量不可使用引用。于是上面的代码中不可以写成swap(&a,&b),而必须用指针变量pl和p2存放&a和&b,然后把指针变量作为参数传入。

    另外,如果想要深入了解引用,我推荐一篇文章:https://blog.csdn.net/JayRoxis/article/details/73060770 作者总结的比较用心。

    结构体

    1. 结构体定义
      可以将若干不同数据类型的数据封装在一起,可以用来储存复合数据。可以将若干不同数据类型的数据封装在一起,可以用来储存复合数据。

      struct Name{
      //自定义的数据结构
      };
      
      struct person{
      	char name[10];
      	char gender;
      	int age;
      };
      person Jhon,Harry,students[10];
      
      struct person{
      	char name[10];
      	char gender;
      	int age;
      }Jhon,Harry,students[10];
      //Jhon,Harry为结构体变量,students[10]为结构体数组变量
      
      struct person{
      	char name[10];
      	char gender;
      	int age;
      	person* father;//结构体内可以定义结构体本身的指针类型的指针变量
      }Jhon,Harry,students[10];
      //Jhon,Harry为结构体变量,students[10]为结构体数组变量
      
    2. 访问结构体中的元素

      方式一:

      Jhon.name
      Jhon.gender
      Jhon.age
      

      方式二:

      Jhon->name
      Jhon->gender
      Jhon->age
      
    3. 结构体初始化
      使用构造函数初始化

      #include <iostream>
      #include <string.h>
      using namespace std;
      struct person{
      	char name[10];
      	char gender;
      	int age;
      	person(char* name_,char gender_,int age_){	strcpy(name,name_); gender = gender_; age = age_;}
      	
      };
      int main() {
          person a("green",'F',20);
      	cout << a.name << " " << a.gender << " " << a.age << endl; 
          return 0;
      }
      

      在创建时,自行初始化

      #include <iostream>
      #include <string.h>
      using namespace std;
      struct person{
      	char name[10];
      	char gender;
      	int age;	
      };
      int main() {
          person a;
          strcpy(a.name,"white");
          a.gender = 'M';
          a.age = 21;
      	cout << a.name << " " << a.gender << " " << a.age << endl; 
          return 0;
      }
      
    展开全文
  • c++引用的特点

    万次阅读 2020-08-24 01:26:41
    1.将“引用”作为函数参数有哪些特点? (1)传递引用给函数与传递指针的效果是一样的。 (2)使用引用传递函数的参数,在内存中并没有产生是实参的副本,它是直接对实参操作 (3)使用指针作为函数的参数虽然也能达到...

     1.将“引用”作为函数参数有哪些特点?
       (1)传递引用给函数与传递指针的效果是一样的。
       (2)使用引用传递函数的参数,在内存中并没有产生是实参的副本,它是直接对实参操作
       (3)使用指针作为函数的参数虽然也能达到使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用”*指针变量名”的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,更清晰。

    2.将“引用”作为函数返回值类型的格式、好处和需要遵守的规则?
       好处:在内存中不产生被返回值的副本
     注意:
       1.不能返回局部变量的引用,主要是局部变量会在函数返回后被销毁,因此被返回的引用就成了无所指的引用,程序会进入未知状态
       2.不能返回函数内部new分配的内存的引用(容易造成内存泄漏)
       3.可以返回类成员的引用,但最好是const

    展开全文
  • C++引用和指针的区别

    千次阅读 2020-07-10 14:51:40
    引用C++引入的重要机制(C语言没有引用),它使原来在C中必须用指针来实现的功能有了另一种实现的选择,在书写形式上更为简洁。那么引用的本质是什么,它与指针又有什么关系呢? 1.引用的底层实现方式 引用被...

    作者:RainMan
    链接:https://www.zhihu.com/question/37608201/answer/545635054
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     

    引用是C++引入的重要机制(C语言没有引用),它使原来在C中必须用指针来实现的功能有了另一种实现的选择,在书写形式上更为简洁。那么引用的本质是什么,它与指针又有什么关系呢?

    1.引用的底层实现方式

    引用被称为变量的别名,它不能脱离被引用对象独立存在,这是在高级语言层面的概念和理解,并未解释引用的实现方式。常见错误说法是“引用”自身不是一个变量,甚至编译器可以不以引用分配空间。

    实际上,引用本身是一个变量,只不过这个变量的定义和使用与普通变量有显著的不同。为了解引用变量底层实现机制,考查如下代码:

    int i=5;
    int &ri=i;
    ri=8;

    在Visual Studio 2017环境的debug模式调试代码,反汇编查看源码对应的汇编代码的步骤是:调试->窗口->反汇编,即可得到如下原码对应的汇编代码:

    int i=5;
    00A013DE  mov        dword ptr [i],5    	//将文字常量5送入变量i
    int &ri=i;
    00A013E5  lea        eax,[i]  	 	    	//将变量i的地址送入寄存器eax
    00A013E8  mov        dword ptr [ri],eax  	//将寄存器的内容(也就是变量i的地址)送入变量ri
    ri=8;
    00A013EB  mov        eax,dword ptr [ri]  	//将变量ri的值送入寄存器eax
    00A013EE  mov        dword ptr [eax],8   	//将数值8送入以eax的内容为地址的单元中
    return 0;
    00A013F4  xor        eax,eax
    

    考查以上代码,在汇编代码中,ri的数据类型为dword,也就是说,ri要在内存中占据4个字节的位置。所以,ri的确是一个变量,它存放的是被引用对象的地址。由于通常情况下,地址是由指针变量存放的,那么,指针变量和引用变量有什么区别呢?使用指针常量实现上面的代码功能。考查如下代码:

    int i=5;
    int* const pi=&i;
    *pi=8;

    按照相同的方式,在VS2017中得都如下汇编代码:

    int i=5;
    011F13DE  mov         dword ptr [i],5  
    int * const pi=&i;
    011F13E5  lea         eax,[i]  
    011F13E8  mov         dword ptr [pi],eax  
    *pi=8;
    011F13EB  mov         eax,dword ptr [pi]  
    011F13EE  mov         dword ptr [eax],8  
    

    观察以上代码可以看出:

    (1)除了pi与ri变量名不同,所得汇编代码与第一段所对应的汇编代码完全一样。所以,引用变量在功能上等于一个指针常量,即一旦指向某一个单元就不能在指向别处。

    (2)在底层,引用变量由指针按照指针常量的方式实现。

    2.高级语言层面引用与指针常量的关系

    1.引用和指针,在内存中都是占用4个字节(32bits系统中)的存储空间。指针和引用存放的都是被引用对象的地址,都必须在定义的同时进行初始化。

    2.指针常量本身(以p为例)允许寻址,即&p返回指针常量(常变量)本身的地址,被引用对象用*p表示;引用变量本身(以r为例)不允许寻址,&r返回的是被引用对象的地址,而不是变量r的地址(r的地址由编译器掌握,程序员无法直接对它进行存取),被引用对象直接用r表示。

    3.凡是使用了引用变量的代码,都可以转换成使用指针常量的对应形式的代码,只不过书写形式上要繁琐一些。反过来,由于对引用变量使用方式上的限制,使用指针常量能够实现的功能,却不一定能够用引用来实现。

    例如,下面的代码是合法的:

    int i=5,j=6;
    int* const array[]={&i,&j};

    而如下代码是非法的:

    int i=5,j=6;
    int& array[]={i,j};

    也就是说,数组元素允许是指针常量,却不允许是引用。C++语言机制如此规定,原因是避免C++语法变得过于晦涩。假如定义一个“引用的数组”,那么array[0]=8;这条语句该如何理解?是将数组元素array[0]本身的值变成8呢,还是将array[0]所引用的对象的值变成8呢?对于程序员来说,这种解释上的二义性对正确编程是一种严重的威胁,毕竟程序员在编写程序的时候,不可能每次使用数组时都要回过头去检查数组的原始定义。

    即得出两个不同:引用只能在定义时被初始化一次,之后不可变,但是指针可变;引用没有 const,指针有 const。

    4.一些其他不同:

    引用使用时无需解引用(*),指针需要解引用;

    “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;

    引用不能为空,指针可以为空;

    指针和引用的自增(++)运算意义不一样;引用自增被引用对象的值,指针自增内存地址。

     

    https://blog.csdn.net/tianguiyuyu/article/details/102941951

    c++中引用的本质

    c++中引用就是一个常指针,其也占用内存空间。

    1)引用在C++中的内部实现是一个常指针

    Type& name 《-》Type* const name

    2)C++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占用的空间大小与指针相同。

    3)从使用的角度,引用会让人误会其只是一个别名,没有自己的存储空间。这是C++为了实用性而做出的细节隐藏

    具体点:如下:

    1)引用在实现上,只不过是把:间接赋值成立的三个条件的后两步和二为一

    (简介赋值的三个条件: 1定义两个变量 (一个实参一个形参) 2建立关联 实参取地址传给形参  3 *p形参去间接的修改实参的值)

    //当实参传给形参引用的时候,只不过是c++编译器帮我们程序员手工取了一个实参地址,传给了形参引用(常量指针)

    如下图所示,c++编译器会把左边的代码翻译成右边的。

    2)当我们使用引用语法的时,我们不去关心编译器引用是怎么做的

        当我们分析奇怪的语法现象的时,我们才去考虑c++编译器是怎么做的。

    详细点就是看下面的代码:

    
        #include <iostream>
    
        using namespace std;
    
        //1 第一点 单独定义的引用时,必须初始化;说明很像一个常量
    
        void main1()
    
        {
    
        //
    
        const int c1 = 10;
    
        int a = 10;
    
        int& b = a; //b很想一个常量
    
        printf("&a:%d \n", &a);
    
        printf("&b:%d \n", &b); //===> a 和 b就是同一块内存空间的门牌号,a和b的地址是一样的,说明引用b就是a的别名
    
        cout << "hello..." << endl;
    
        system("pause");
    
        return;
    
        }
    
        //2 普通引用有自己的空间吗? 有
    
        struct Teacher
    
        {
    
        char name[64]; //64
    
        int age; //4
    
        int& a; //4 0 //很像指针 所占的内存空间大小
    
        int& b; //4 0
    
        };
    
        //3 引用的本质
    
        void modifyA(int& a1)
    
        {
    
        a1 = 100;
    
        }
    
        void modifyA2(int* const a1)
    
        {
    
        *a1 = 200; //*实参的地址 ,去间接的修改实参的值
    
        }
    
        void main()
    
        {
    
        int a = 10;
    
        //1
    
        modifyA(a); //指向这个函数调用的时候,我们程序员不需要取a的地址
    
        printf("a:%d \n", a); //输出100
    
        //
    
        a = 10;
    
        modifyA2(&a); //如果是指针 需要我们程序员手工的取实参的地址
    
        printf("a:%d \n", a); //输出200
    
        printf("sizeof(Teacher):%d \n", sizeof(Teacher)); //输出76,说明普通引用有自己的内存空间
    
        system("pause");
    
        }
    
        void modifyA3(int* p)
    
        {
    
        *p = 200; //*p 3*p形参去间接修改实参的值
    
        }
    
        //间接赋值
    
        void main11()
    
        {
    
        int a = 10;
    
        int* p = NULL; //间接赋值成立的三个条件 1 定义两个变量
    
        p = &a;
    
        *p = 100;
    
        {
    
        *p = 200;
    
        }
    
        modifyA3(&a); //2 建立关联
    
        }
    
    
        // 123 写在一块
    
        // 12 3
    
        //1 23

     

    展开全文
  • C++ 引用的作用

    千次阅读 2019-06-20 10:35:05
    2. 函数调用时,系统采用值传递的方式将实参的值传递给形参,系统会在内存中开辟空间来存储形参变量,并将实参的值复制给形参, 而采用引用作为函数形参,只要传给函数实参的别名,不需要耗费时间在内存中开辟空间...

    一.引用作为函数的参数. 

    1.  引用作为函数的参数,其作用与指针作为函数参数相似,函数对形参的操作,等于对实参本身进行操作;

    2.  函数调用时,系统采用值传递的方式将实参的值传递给形参,系统会在内存中开辟空间来存储形参变量,并将实参的值复制给形参, 而采用引用作为函数形参,只要传给函数实参的别名,不需要耗费时间在内存中开辟空间存储形参,使用引用,可以提高函数的时间效率,并节省内存空间。

    3. C++中推荐使用引用而非指针作为函数的参数,指针作为函数形参变量时,调用函数时仍需要在内存中分配空间。

    4. C++的数组类型是带有长度信息的,引用传递时 如果是数组必须指定数组的长度。

    二. 常引用

    const 类型 &引用名=目标变量名

    常引用不允许通过引用对所绑定的变量或对象进行修改

     

    三.引用作为函数的返回值

    类型 & 函数名 (形参列表) {函数体}

    用引用作为函数的返回值,在内存中不会产生返回值的副本

    函数返回值是一个临时对象,临时对象的生命周期在一个完整的语句结束。 

    主函数的赋值语句中的左值是直接从变量temp中拷贝而来,避免了临时对象的产生,提高了程序的时间和空间的利用率。

     

     

     

    展开全文
  • C++ 引用为什么不能被改变

    千次阅读 2020-07-13 22:22:15
    /* 发现形参c是引用,自动转int* const c, 指针c不能被改变,但能改变所指空间,*c = 100 */ } int main() { int a = 10; int& b =a;/* 发现b是引用,自动转换为int* const b = &a,指针b不能被改变,即...
  • C++ 引用 什么是引用

    千次阅读 多人点赞 2019-04-15 02:00:36
    先举几个栗子:“及时雨”宋江、“卧龙”诸葛亮...概念:引用是为已存在的变量取了一个别名,引用引用的变量共用同一块内存空间 格式:类型& 引用变量名(对象名) = 引用实体; int& ra = a; ra为a的引用 ...
  • C++ 引用占用内存?

    千次阅读 2019-08-19 15:18:01
    说到引用,一般C++的教材中都是这么定义的: 1,引用就是一个对象的别名。 2,引用不是值不占内存空间。 3,引用必须在定义时赋值,将变量与引用绑定。 那你有没有想过,上面的定义正确吗?编译器是如何解释...
  • c++引用与指针的区别

    千次阅读 多人点赞 2019-01-31 20:09:02
    c++引用与指针的区别  ★ 相同点:  1. 都是地址的概念;  指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。   指针的权威定义: In a declaration T D where D has the form * cv-...
  • c++引用参数

    万次阅读 多人点赞 2018-08-10 20:33:56
     C++中参数的传递方式: 1.值传递  调用时,将实参的值传递对应的形参,即为值传递。由于形参有自己独立的存储空间,又作为函数的局部变量使用,因此在函数中对任何形参值得修改都不会改变实参变量的值。简单的...
  • C++ 引用变量

    千次阅读 2017-04-03 11:08:55
    C++新增了一种复合类型--引用变量。引用是已定义变量的别名,使用引用变量的主要的用途是作为函数的参数。通过将引用变量用作参数,函数将使用原始数据,而不是副本。这样除指针之外,引用也为函数处理大型结构提供...
  • C++ 引用及vector用法

    千次阅读 2019-07-24 14:50:00
    C++ vector容器对象头文件引用写法及特性vector容器对象 ...//C++引用 #include<iostream> #include<string> using namespace std; int main() { int ival = 10; int &refV...
  • Java的引用和C++引用的区别

    千次阅读 2018-09-21 11:46:40
    java的引用只是能操作原内存,不能操作指向内存的指针,而c++引用不仅是操作原内存,更是操作指向原内存的指针! c++里对对象的引用相当于二级指针,而java里的引用只是一级指针 new 类名();创建对象 类名 xxx ...
  • C/C++ 引用作为函数的返回值

    万次阅读 多人点赞 2018-08-04 13:19:48
    1.引用作为函数的返回值时,必须在定义函数时在函数名前将&amp; 2.用引用作函数的返回值的最大的好处是在内存中不产生返回值的副本 //代码来源:RUNOOB #include&lt;iostream&gt; using namespace ...
  • 深入探索C++引用的实现原理

    千次阅读 2018-03-30 17:39:18
    引用 1.引用的概念及用法 2.引用做参数 3.引用做返回值 4.汇编层看引用的特性 5.引用和指针的区别 1.引用的概念及用法 引用不是定义一个新的变量,而是给一个已经定义的变量重新起一个别名。 定义的...
  • C++ 引用引用作为函数的参数

    千次阅读 多人点赞 2019-05-12 13:33:39
    对一个数据建立一个“引用...这是C++对C语言的一个重要补充。 如何建立一个引用 int a = 5; int &b = a; cout<<a<<endl; cout<<b<<endl; cout<<&a<<endl; cou...
  • C/C++引用的用法

    千次阅读 2019-01-25 11:19:27
    引用的基本用法 引用类型:其本质上是指针,在学习时可以和指针相对照。 指针类型: int* double* Object* 引用类型 int&amp;amp; double&amp;amp; Object&amp;amp; 指针的使用: int a = ...
  • c++ 引用传参和指针传参的区别

    千次阅读 2019-05-26 19:32:47
    引用从本质上讲是一个别名,是另一个变量的同义词,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化(先有这个变量,这个实物,这个实物才能有别名),而且其引用的对象在其整个生命周期...
  • C++引用折叠

    千次阅读 2017-07-11 15:09:55
    C++引用折叠
  • C/C++引用和指针的区别

    万次阅读 多人点赞 2019-05-28 21:57:58
    为什么C/C++语言使用指针? 答案:①一方面,每一种编程语言都使用指针。不止C/C++使用指针。 每一种编程语言都使用指针。C++将指针暴露给了用户(程序员),而Java和C#等语言则将指针隐藏起来了。 “Everything ...
  • C++ 引用的本质是什么?

    千次阅读 多人点赞 2017-04-07 23:45:16
    C++中的引用本质上是 一种被限制的指针。由于引用是被限制的指针,所以引用是占据内存的。在使用高级语言的层面上,是没有提供访问引用的方法的。并且引用创建时必需初始化,创建后还不能修改。下面是找到的相关资料...
  • C++ 引用作为函数返回值

    万次阅读 多人点赞 2018-10-23 13:35:59
    (1)以引用返回函数值,定义函数时需要在函数名前加 &amp; (2)用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本。 引用作为返回值,必须遵守以下规则: (1)不能返回局部变量的引用。...
  • C/C++引用

    千次阅读 2019-04-24 10:57:06
    引用符号:&,出现在类型之后 Struct Object { int value; }; int main { Object a={1}; Object& r=a; return 0; } 1、创建一个类型为Object的对象a,变量r是对象a的一个引用(总共只有一个对象,r...
  • C++引用计数原理和实现

    千次阅读 2019-04-17 13:34:00
    引用计数主要用于自动垃圾回收,C++程序直接运行于cpu,本身是没有垃圾回收功能的,但可以通过引用计数实现一个带半自动垃圾回收功能的类,之所以称之为半自动,典型的是因为它不像java/python那样能处理循环指针...
  • C++引用及常引用

    千次阅读 多人点赞 2016-08-18 20:44:58
    一、变量的引用引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名;  例:char ch;  char &rp=ch;  1)引用仅是...
  • c++引用有没有存储空间?

    千次阅读 2018-01-31 10:46:44
    c++引用有没有存储空间? 问题来自于引用与指针的区别有哪些? 答案: 1、引用定义的时候必须初始化,不能为空,也就是说必须和某对象绑定,且不能易主。但是指针可以为NULL,也可以想指谁指谁(所以他事儿多,...
  • C++ 引用 int&

    千次阅读 2018-10-29 22:05:23
    1.在引用的使用中,单纯给某个变量去别名是毫无意义的,引用的目的主要用于在函数参数的传递中,解决大块数据或对象的传递效率和空间不如意的问题 2.用引用传递函数的参数,能保证参数在传递的过程中不产生副本,...
  • C++ 引用的指针和指针的引用

    万次阅读 多人点赞 2018-02-24 21:07:23
    C++不允许定义引用的指针,因为引用本身只是与另一个对象绑定在一起的该对象的别名,而并非一个对象,所以标准规定不能定义指向引用的指针报错: int a = 20; int &amp;*ptr = &amp;a;// error 参考&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 551,913
精华内容 220,765
关键字:

c++引用

c++ 订阅