菜鸟编程 引用
来源:互联网 发布:ubuntu win7 系统时间 编辑:程序博客网 时间:2024/05/29 19:23
这里,笔者想分享一个和指针功能相似的类型——引用类型。
指针类型提供了通过一个变量间接访问另一个变量的功能,但这个也会有一些书写繁琐、程序不可靠的问题。引用类型能较好的解决这些问题。
所谓引用,就是给变量起一个别名。例如: int x = 20; int &j = x; 这里就定义了变量j是i的别名,也就是说,二者共享一块存储空间。
引用和指针不同的地方在于,引用只能指向a,之后就不能指向b了,但指针p在指完变量i之后,可以再指向变量t。同时,指针存在空指针,但是没有空引用这个东西。也就是说,声明一个引用类型的变量的同时,必须赋值。
引用其实是一种隐式的指针,但每次使用的时候,不用写*。而且,它可以对用另外一个引用,例如: int &m = j; 这个时候,引用变量m和j共同指向i,都是i的别名。
关于引用的传递:
之所以有引用,主要目的是将引用作为函数的参数,也就是进行地址的传递。
void swap(int *a, int *b)
{
int c;
c = *a;
*a = *b;
*b = c;
}
以上这个函数如果要调用的话,需要是 swap(&a, &b);
但如果是写成引用,可以是:
void swap(int &a, int &b)
{
int c = a;
a = b;
b = c;
}
调用的时候就可以是 swap(a , b);
关于常量的引用传递:
引用传递也有一定的风险,因为地址的共享,实际参数的值可能会改变。对此,可以进行const 的引用。通过const 来限定引用传递参数。这样,这个形参就不能被修改了。
int max(const int &a,const int &b);
常量的引用传递常常用来代替值传递,这一点在参数占比较大的空间时会提高效率。
以上是笔者的一些分享,如果有表述错误的地方,还请更正,谢谢!
- 菜鸟编程 引用
- 菜鸟菜鸟菜鸟菜鸟编程之路
- 编程 。引用
- 特级菜鸟学编程
- 菜鸟也来看编程
- 我是编程菜鸟!
- 菜鸟在学编程__LSJ
- 编程菜鸟感言
- 菜鸟尝试初步编程
- 菜鸟的编程回忆录
- 菜鸟学shell编程
- 菜鸟java编程 Servletproxy
- java菜鸟编程小结
- 菜鸟编程 一个练习
- 菜鸟编程 指针初步
- 菜鸟编程 指针初步
- 【菜鸟C++学习笔记】21.引用
- 【奔跑的菜鸟】Java中的引用传递
- python-快速使用urllib爬取网页(1)
- android微信分享之视频、URL地址、表情分享
- 我的第一个可调参数深度学习模型
- 使用nutz进行复杂的数据库操作
- web学习笔记25-Hibernate基本配置使用
- 菜鸟编程 引用
- BZOJ 4289: PA2012 Tax 最短路 建图
- ubuntu 16.04配置shadowsocks
- 特殊形式矩阵求逆
- C++的学习笔记(第四章:数组及自定义类型)
- 健壮性图
- Linux内核笔记 -- 锁
- 我从阿里面试回来,想和Java程序猿谈一谈
- poj3279 Fliptile