引用概念
来源:互联网 发布:java实战开发 编辑:程序博客网 时间:2024/06/01 07:37
20、引用
我们知道,参数的传递本质是一次赋值的过程,赋值就是对内存进行拷贝,所谓的内存拷贝,是指将一块内存上的数据复制到另一块内存上。
b.c/C++禁止在函数调用时直接传递数组的内容,而是强制传递数组指针,而对于结构体和对象没有这种限制,调用函数时既可以传递指针,也可以直接传递内容;但是在C++中,我们有了一种比指针更加便捷的传递聚合类型数据的方式,那就是引用(Reference)
c.引用是C++相对于C语言的有一个扩充,引用可以看做是数据的一个别名,通过这个别名和原来的名字都能找到这份数据。
引用类似于Windows中的快捷方式。
引用的定义方式类似于指针,只是用&取代了*,语法格式为:
type &name = data;
type是被引用的数据的名称
name 是引用的名称
data 是被引用的数据
int & i = j;
引用必须在定义的同时初始化,并且以后也要从一而终,不能在引用其他数据,这有点类似于CONST变量
注意:引用在定义时需要添加& ,在使用时不能添加&,使用时添加&表示取地址符。
d.再定义或者声明函数时,我们可以将函数的形参指定为引用的形式,这样在调用函数时就会将实参和形参绑定在一起,让它们都指代同一份数据。
如此一来,如果在函数体中修改了形参的数据,那么实参的数据也会被修改,从而拥有“在函数内部影响外部数据”的效果。
一个能够展现按引用传参的优势 的列子就是交换2个数据的值。
我们知道,参数的传递本质是一次赋值的过程,赋值就是对内存进行拷贝,所谓的内存拷贝,是指将一块内存上的数据复制到另一块内存上。
b.c/C++禁止在函数调用时直接传递数组的内容,而是强制传递数组指针,而对于结构体和对象没有这种限制,调用函数时既可以传递指针,也可以直接传递内容;但是在C++中,我们有了一种比指针更加便捷的传递聚合类型数据的方式,那就是引用(Reference)
c.引用是C++相对于C语言的有一个扩充,引用可以看做是数据的一个别名,通过这个别名和原来的名字都能找到这份数据。
引用类似于Windows中的快捷方式。
引用的定义方式类似于指针,只是用&取代了*,语法格式为:
type &name = data;
type是被引用的数据的名称
name 是引用的名称
data 是被引用的数据
int & i = j;
引用必须在定义的同时初始化,并且以后也要从一而终,不能在引用其他数据,这有点类似于CONST变量
注意:引用在定义时需要添加& ,在使用时不能添加&,使用时添加&表示取地址符。
d.再定义或者声明函数时,我们可以将函数的形参指定为引用的形式,这样在调用函数时就会将实参和形参绑定在一起,让它们都指代同一份数据。
如此一来,如果在函数体中修改了形参的数据,那么实参的数据也会被修改,从而拥有“在函数内部影响外部数据”的效果。
一个能够展现按引用传参的优势 的列子就是交换2个数据的值。
阅读全文
0 0
- 引用概念
- 关于引用的概念
- Java中的引用概念
- java引用的概念
- C++中引用概念
- “类引用”概念
- C++引用概念简介
- Java中的引用概念
- Java中的引用概念
- C++中引用概念
- C++引用的概念
- C#引用概念
- Java中的引用概念
- 引用计数概念详解
- java对象引用概念
- C++中引用概念
- 强引用弱引用的概念
- java中的引用类型概念
- MySQL知识整理(3)一些常用命令
- 机器学习算法03-线性判别分析LDA
- 欧拉回路和欧拉路径的判断
- FTPrep: 50 pow(x, n)
- hdu 1028
- 引用概念
- 网页自动跳转代码
- Sublime插件
- 关于红米3(开发版)如何修改host文件访问谷歌
- 服务跨域以及Session保持问题
- Excel 中连续生成开始日期和结束日期之间的日期
- The C Programming Language的小代码
- 机器学习之监督学习-回归
- hdu1579(记忆深搜)