//引用定义:相当于给变量起别名

    int a = 1

    int &b = a;

   //这时, 操作 变量b, 就是操作的变量a的地址, 变量a的值也会跟着改变,

// 引用做函数的参数

        /*定义函数*/

       void 函数名(int c){

           输出 c

        }

       /*调用函数*/

       int a = 1;

       函数名(a)

/*

当调用上面函数时, 就相当于在函数体内  定义了一个   c = a

所以  当定义函数时  写成   函数名(&c){} ,

就相当于在函数体内写了一个    &c = a

此时,相当于给a变量起了一个别名:c

改变c的值,a也会改变

相当于只是传递了一个a的地址.

*/


引用的本质


int a = 10;

int &ref = a; /*定义一个引用,相当于给变量a起了一个别名:ref

              编译器内部会转换成:

              int* const ref = &a

              */

 

ref = 20;//内部发现ref是引用,自动帮我们转换成: *ref = 20


注意事项:

引用必须要初始化

引用一旦初始化,就不可以修改


相关推荐

c++引用&符和 * 区别

简单的一句话概括:*是取数据 , &是取地址也可以理解为 &是引用 *是解引用例子1:解引用a=10;p=&a 把a的地址取出来,赋值给p,p等于一个地址* p=1000

mysql各个版本下载地址

https://downloads.mysql.com/archives/community/

做站群常用的地址收集

一 , 注册域名,尽量选择大平台,方便转移,经常有活动做,批量续费与注册可能会便宜一些技巧:一般单个注册与批量注册价格不一样,可以随意搞个记事本 随机输入100行随机比较长为20以上的字符串然后依次在

Visual Studio里 1个引用 几个引用 VS

在工具 >> 选项 >> 文本编辑器 >> 所有语言 >> CodeLens 启用或关闭此功能即可

php $_get 参数的引号自动被转义如何取消

php.ini配置文件:magic_quotes_gpc = On改为:magic_quotes_gpc = OFF注意对参数进行过滤。防止sql注入。

原生JavaScript获取指定get请求参数

代码如下:function 取get参数值(key){ var url = location.search; str = url.match(/\\?(\\S*)/)[1]; //文本_取右边 ?

zblog $template->GetTags() 函数参数

$this->templateTags['zbp'] = &$zbp; $this->templateTags['user'] = &am

易语言写多线程程序 0x xxxxx 指令引用的0xxxxxxx内容 该内存不能为read

被这个问题困扰了两天由于代码太多 经过检查也没有操作全局变量 只能每一个步骤都记录一个日志来观察最终 原来是在子线程里 使用 正则表达式造成的可能这次写的线程数太多了 200个线程并发 鬼知道正则表达

JavaScript替换字使用replace 替换字串中反斜杠

JavaScript普通字符串替换把c替换成astr='abcd'; console.log(str); str=str.replace"c",&quo

Vmware已将该虚拟机配置为使用 64 位客户机操作系

错误提示: 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态。 如果已在 BIOS/固件设置中禁