C++中引用是指给一个变量起别名,别名和变量指向同一块的内存数据
01
—
引用的基本语法
//引用的基本语法:[数据类型] &[变量名] = [该数据类型的变量]int x = 10;int &a = x;
02
—
引用的注意事项
1.引用在定义时必须初始化
int &a; //错误:引用“a”变量需要初始值设定
2.引用在初始化之后就无法修改
int x = 10;int y = 20;int &a = x;cout <"x= " <endl;cout <"a= " <endl;a = y;cout <"x= " <endl;cout <"a= " <endl;
输出结果:
03
—
用引用做函数参数
当函数的变量使用引用接收参数时,形参发生改变也会修改实参数据,比使用指针作为形参相对简化了代码。
void ChangeValue(int &a,int &b){ int temp = a; a = b; b = temp;}int main(){ int x = 10; int y = 20; ChangeValue(x, y); cout << " x= " << x << endl; cout <" y= " < system("pause");}
程序输出:
04
—
引用作为函数的返回值
1.不可以返回局部变量的引用
//1.不可以返回局部变量的引用int& LocalTest(){ int a = 10; return a;}int main(){ int &x = LocalTest(); //编译器保存一次结果 cout << x << endl; //再次访问时内存中的数据被释放 cout << x << endl; system("pause");}
输出结果:
2.返回值为引用时,函数可以做为左值使用
//2.返回值为引用时,函数可以做为左值存在int& StaticTest(){ //a为静态变量,存储在四区中的全局区,在程序结束时由系统释放 static int a = 100; return a;}int main(){ //&y 指向函数返回的引用 int &y = StaticTest(); cout << y << endl; cout << y << endl; //函数做为左值 StaticTest() = 1000; //值被修改后同步修改该函数返回的引用所对应的数据 cout << y << endl; cout << y << endl; system("pause");}
输出结果: