1. 程式人生 > 其它 >【C++基礎知識】C++中引用的知識點解析

【C++基礎知識】C++中引用的知識點解析

技術標籤:C++

C++中的引用

引用的概念

建立引用的作用通常是為變數起另一個名字,變數的引用通常被認為是變數的別名。

在宣告一個引用時,必須用另一個變數來將其初始化。例如:

int i=5;
int j=&i;               //宣告j是一個整型變數變數的引用,並用i將其初始化。

此處j可以看作是變數i的一個別名,經過這樣的聲明後i和j的作用相同,代表同一個變數。對其進行的操作也是等價的,例如改變j的值,i的值也會隨之發生變化。

變數和引用的關係

#include<iostream>
using namespace std;
int main()
{
	int i;
	int &j = i;
	i = 30;
	cout << "i=" << i << ' ' << "j=" << j << endl;
	j = 80;
	cout << "i=" << i << ' ' << "j=" << j << endl;
	cout << "變數i的地址是:" << &i << endl;
	cout << "引用j的地址是: " << &j << endl;
	return 0;
}

執行結果如下:

在這裡插入圖片描述

由此可見,i和j的值同步更新,並且使用同一塊記憶體空間。

說明

1、引用名可以是任何合法化的變數名。除了用作函式的返回值和引數外,在宣告引用時,必須立即進行初始化,不能宣告完成後再賦值。

2、為引用提供的初始值,可以是一個變數,也可以是一個引用。

3、指標是通過地址間接訪問某一個變數,而引用是通過變數別名直接訪問某個變數。每次使用引用時,可以不書寫簡介運算子“**”,因而使用引用可以簡化程式。

4、引用在初始化後不能再重新宣告為另一個變數的引用。

5、並不是任何資料的型別的可以引用,例如:

①、不能建立void型別的引用;

②、不能建立引用的陣列:

int a[4]="abcd";
int &ra[4]=a;          //非法

③、不能建立引用的引用,不能建立指向引用的指標;

int a=10;
int &&b=a;             //非法
int &*c=a;             //非法

6、可以將引用的地址賦給一個指標,此時指標指向的是原來的變數。

7、引用運算子“&”只在宣告引用時起該作用,其他場合時出現的“&”都作為地址操作符。

除此之外引用的功能還有很多,例如引用作為函式引數,作為函式返回值等。

符“&”只在宣告引用時起該作用,其他場合時出現的“&”都作為地址操作符。

除此之外引用的功能還有很多,例如引用作為函式引數,作為函式返回值等。