C++引用

来源:互联网 发布:三星手表gears软件 编辑:程序博客网 时间:2024/06/08 11:46

C++函数中参数是按“传值”的方式传递,在函数内要为参数分配内存,即要把实参的数值传递到新分配的内存中

引用可以看作别名(所引用空间的名字,这个空间是实参存在的内存空间),即为传入实参起的别名,在被传入的函数内并没有为引用分配内存。

引用不是定义一个新变量,而是给一个已经定义的变量重新起一个别名,C++系统不为引用类型变量分配内存;引用主要用于函数之间的数据传递。


对变量的引用

#include<iostream>using namespace std;//引用定义格式:类型 &引用变量名=已定义过的变量名;void main(){int a=10;int &b=a;   //不能定义空引用,必须要定义一个已存在变量的引用//a是一个int型变量,开辟一个空间命名为a,把10存入该空间//定义一个b变量,b是对a的引用,不会为b开辟新的空间,为原有的a空间重新起一个名字b,b和a具有相同的地址空间}


对指针的引用

#include<iostream>using namespace std;void main(){int a=10;int &b=a;   int *p=&a;   int *q=p;   //把p的值赋给q(p指针指向的值)}


#include<iostream>using namespace std;void main(){int a=10;int &b=a;   int *p=&a;//想传递指针的地址(地址的地址,二级指针)int *&q=p;   //写法等同于int* &q=p//&q和&b一样的地位,只不过int*表示整型指针类型}


对数组的引用

#include<iostream>using namespace std;//对数组的引用void main(){int ar[10]={1,2,3,4,5,6,7,8,9,10};int (&br)[10]=ar;}


const引用:"常引用"可以引用"变量",但是"常变量"只能用"常引用"引用

#include<iostream>using namespace std;//const引用void main(){int n=20;const int &m=n;   //"常引用"可以引用"变量",但是"常变量"只能用"常引用"引用}
#include<iostream>using namespace std;void main(){const double d=12.34;const double &f=d;   const int &g=d;   //强制类型转换引用//g对double型的d引用,先生成一个临时变量存int型的12,g引用的空间是存临时变量12的空间}

此外,临时变量一般都具备常量的性质,所以不能用非常的引用去引用常临时变量,不能编译通过。


原创粉丝点击