c++新特性---引用變量

1、定義app

引用變量是已定義變量的別名,如將ra設置爲a的引用變量,則能夠使用ra和a交替使用該變量。函數

表示:spa

int a = 5;指針

int & ra = a;變量

其中&不是地址運算符,而是類型標示符的一部分。 引用

2、含義程序

使用引用變量ra和變量a都指向同一個地址,均可以改變變量的值。數據

3、引用變量和指針的區別poi

int a = 100;co

int & ra = a;     //ra a reference

int * pa = &a;  //pa a pointer

一、表示法不一樣:

表達式ra和*pa均可以和a交換,而表達式&ra和pa均可以和&a交換。

二、初始化不一樣:

引用變量必須在聲明時初始化

int a;

int & ra = a;

指針能夠先聲明,再初始化

int a;

int * pa;

pa = &a;

4、應用

一、能夠經過初始化設置引用,不能夠經過賦值設置:

int A = 2;
int & a = A;
cout << "A = " << A << ",a = " << a << endl;
cout << "A adress = " << &A << ",a address = " << &a << endl;
int b = 3;
a = b;
cout << "A = " << A << ",a = " << a << ",b = " << b << endl;
cout << "A adress = " << &A << ",a address = " << &a << ",b address = " << &b << endl;

——————程序運行結果——————

A = 2,a = 2
A adress = 0x22fef8,a address = 0x22fef8
A = 3,a = 3,b = 3
A adress = 0x22fef8,a address = 0x22fef8,b address = 0x22fef4

由上可知,a = b,等同於A = b;結果是a和A的值都變成了3,可是兩個變量的地址沒變,說明不能夠經過賦值設置引用變量,一旦初始化設置了就不能夠改變。

二、將引用用做函數參數:

void swapv(int m, int n){
int temp;
temp = m;
m = n;
n = temp;
}

void swapp(int * m, int * n){
int temp;
temp = *m;
*m = *n;
*n = temp;
}

void swapr(int & m, int & n){
int temp;
temp = m;
m = n;
n = temp;
}

 

int a = 2;
int b = 6;
swapv(a, b);
cout << "use value " << "a = " << a << ", b = " << b << endl;
swapp(&a, &b);
cout << "use pointer " << "a = " << a << ", b = " << b << endl;
swapr(a, b);
cout << "use reference chang again " << "a = " << a << ", b = " << b << endl;

——————程序運行結果——————

use value a = 2, b = 6
use pointer a = 6, b = 2
use reference chang again a = 2, b = 6

由上可知,只有指針和引用變量能夠交換數據,賦值方式不可。

相關文章
相關標籤/搜索