自学内容网 自学内容网

C++中的引用(一)

1.什么是引用
(1)引用即别名,对引用的操作与对变量本身完全相同;
(2)引用的语法
类型&引用名=变量;
(3)注意事项

  • a)引用在定义时必须初始化;
  • b)引用初始化以后其绑定目标不能修改;
  • c)引用和绑定的目标变量类型要一致;

简单地说,引用就是一个别名,对别名的操作与对变量本身的操作是完全相同的,这里的别名是指变量的别名,换到实际开发中,可以背某个变量起别名,例如:一个整形变量a,其初始化值为10,则通过a这个变量就可以访问到内存中初始化的这个数据10了,在开发中,有时候想给变量a起个别名,比如叫b,或c,那么我们可以通过b或者c访问到该数据10。从语法角度说,想要给某个变量起别名,就是要在这个定义这个变量时候加上一个“&”,表达的意思是想要给某个变量起个别名,这个别名称为引用。使用时候需要注意,引用使用时候必须初始化,必须是先有了变量本身,然后再给这个变量起别名,引用的本身是没有内存的,它要和初始化的变量绑定到一块,所以引用定义时必须初始化;引用在初始化后其绑定的目标不能修改,即我给某个变量起别名后,这个别名只能作为该变量的别名;引用和绑定的目标变量类型需要一致,对引用的操作与对变量本身的操作是一致的,若引用和绑定的目标类型变量不一致的话,通过引用访问操作后与通过变量本身访问操作结果不一致,没有保证完全相同,因为变量的类型决定了对内存的访问方式,一个整形变量能够访问4个字节的内存,一个char类型的只能访问一个字节,想要保证对引用的操作与对变量本身的操作相同,就要保证引用的类型与绑定的目标变量的类型相同。


//05 reference.cpp
#include <iostream>
using namespace std;

int main(void)
{
    int a= 100;
    int &b = a;//b引用a,b就是a的别名,b被称为引用,&表达的是对引用的标记
    cout <<"a="<<a<<endl;//a=100
    cout<<"b="<<b<<endl;//b=100
    //a的地址和b的地址相同,即b这个标识符和变量a绑定到了一起,对应的是同一块内存。引用b本身没有内存,是和变量a绑定到了一块。
    cout<< "&a="<<&a<<endl;
    cout<<"&b="<<&b<<endl;
    
    //对引用b操作,变量a也会被修改
    b++;
    cout<<"a="<<a <<endl;//101
    cout<<"b="<<b <<endl;//101
    
   // int &r;//这行代码会直接报错,因为没有初始化。引用定义必须初始化。
    
    int c= 200;
    b = c;//b是引用的a,仅仅是赋值操作,而不是修改目标,是将c的值拷贝给了b,相应的a也会受到影响。
    
    //a和b的地址不会改变
    cout<<"&a="<<&a <<endl;
    cout<<"&b="<<&b <<endl;
    
   // char &rc=c;//c的类型为int,rc的类型与绑定目标变量c的类型不一致,所以报错。
    
}

原文地址:https://blog.csdn.net/qq_45403803/article/details/142899467

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!