//引用定义:相当于给变量起别名
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/固件设置中禁