关于C++的语句的问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 13:01:30
新手~ 请各位前辈多多帮助|!

1)引用(&)到底是什么? 请举一个小例子给我,
2)::是什么啊? 也请举一个小例子

谢啦

“引用”(reference)是c++的一种新的变量类型,是对C的一个重要补充。它的作用是为变量起一个别名。假如有一个变量a,想给它起一个别名,可以这样写:
int a;int &b=a;
这就表明了b是a的“引用”,即a的别名。经过这样的声明,使用a或b的作用相同,都代表同一变量。在上述引用中,&是“引用声明符”,并不代表地址。
不要理解为“吧a的值赋给b的地址”。声明引用并不开辟内存单元,b和a都代表同一变量单元。
注意:在声明引用变量类型时,必须同时使之初始化,及声明它代表哪一变量。在声明一个变量的引用之后,在本函数执行期间,该引用一直与其代表的变量相联系
,不能再作为其他变量的别名。下面的用法不对:
int a1,a2;
int &b=a1;
b=a2;//企图使b变成a2的别名(引用)是不行的。
例1:
#include<iomanip.h>
#include<iostream.h>
void main()
{
int a=10;
int &b=a;//声明b是a的引用,这样a的值变以后,b的值也变;b的值变以后,a的值也跟着变。
a=a*a;
cout<<b<<setw(6)<<b<<endl;
b=b/5;
cout<<b<<setw(6)<<a<<endl;
}
有了变量名,为什么还需要一个别名呢?C++之所以增加“引用”,主要是把它作为函数参数,以扩充函数传递数据的功能。
我们知道,在C语言中,函数参数传递是单向的,所以例4不能实现两个变量值的交换。C语言中,数组作为函数参数传递的是数组的首地址。
C语言中,还可以利用指针变量做形参来实现两个变量值的换,但这种方式需要定义指针变量,需要额外开辟存储空间,来存放地址,见例3。而引用变量
不是独立的变量,不单独占内存单元这种方法,实参向形参传送的是实参的地址(但与指针不同的是掉用函数时不需要&),而不是实参的值,见例2。