C++对C语言的拓展——引用

 1、变量名

变量名实质上是一段连续存储空间的别名,是一个标号(门牌号);

通过变量来申请并命名内存空间;

通过变量的名字可以使用内存空间。

2、引用的概念

变量名,本身是一段内存的引用,即别名(alias)。引用可以看作一个已定义变量的别名

引用的语法:Type & name = var;

用法如下:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main(void)
 5 {
 6     int a = 10;//C编译器分配4个字节内存,a内存空间的别名
 7     int &b = a;//b就是a的别名
 8 
 9     a = 11;
10     {
11         int *p = &a;
12         *p = 12;
13         cout << a << endl;//12
14     }
15     b = 14;
16     cout << "a=" << a << ",b=" << b << endl;//a=14,b=14
17     return 0;
18 }
View Code

 3、规则

(1)引用没用定义,是一种关系型声明。声明它和原有某一变量(实体)的关系。故类型与原类型保持一致,且不分配内存,与被引用的变量有相同的地址。

(2)声明的时候必须初始化,一经声明,不可更改。

(3)可对引用,再次引用,多次引用的结果是某一变量具有多个别名。

(4)&符号前有数据类型时是引用,其它皆为地址。

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main(void)
 5 {
 6     int a,b;
 7     int &r = a;
 8     int &r = b;//error,不可更改原有的引用关系——规则(2)
 9     float &rr = b;//error,引用类型不匹配——规则(1)
10     cout <<"&r="<< &r << ",&a=" << &a << endl;//变量与引用具有相同的地址——规则(1)
11     int &ra = r;//可对引用再次引用,表示a变量有两个别名,分别是r和ra——规则(3)
12 
13     return 0;
14 }

猜你喜欢

转载自www.cnblogs.com/yuehouse/p/9774862.html