引用:
1.引用是C++语言的一个特殊的数据类型描述,说明他不是真正的数据类型,不能用来声明和定义,只是起别名
2.用于在程序的不同部分使用两个以上的变量名指向同一地址
3.使得对其中任意一个变量的操作都相当于对同一地址单元进行的;
4.引用运算符为&。
5.int a;
int &k = a;//定义引用 一定要初始化
k = 200;
6.对引用进行操作,实际上就是对被引用的变量进行操作
7.引用不是值,不占存储空间,声明引用时,目标的存储状态不会改变
8.引用一旦被初始化,就不能再重新引用其它空间
9.指针和引用的区别:
(1)指针定义了可以不用初始化,引用定义了就要初始化。
(2)指针可以改变指向的空间,引用在初始化后就不能再引用其他的空间了。
(3)指针可以指向NULL,引用一定要保证引用是一个合法存储单元,没有空的引用。
10.引用的优点:
(1)空间(指针要分配空间),效率(相对值传递),安全(指针可能会指向不属于自己的空间,赋值,释放越界就崩掉了,引用只能改单一的一块空间,其他的改不了 )
11.如何选择指针和引用?
(1)装地址,或者有地址偏移的操作,用指针(new 的空间返回的是地址)
(2)单一的空间去操作,用引用就可以
(3)临时用的话定义局部变量,从主函数进来一直
12.引用作为函数的参数
(1)值传递,地址传递,引用传递
(2)选择函数参数的类型: 看是否修改传入的内容,要修改的话就要传地址,只想用的话就传值就行。
(3)区分指针和引用:
都可以,看传进来的是不是地址,是这来指针;不是地址,就要用引用
(4)函数参数的选择与变量的定义在哪个区的关系:
变量的定义------------>才会有函数的参数----------------->形参的选择(引用还是地值传递)
(5) int * p = &a;
int * &k;
*k = 100;
(6)判断&的作用,前面放类型时是引用,什么都不加时地址符,放变量是位运算