C++變量引用的概念介紹

本篇介紹的變量引用與之前介紹的指針不是同一概念,它們有本質的區分:

1)不存在空引用。引用必須連接到一塊合法的內存。

2)一旦引用被初始化為一個對象,就不能被指向到另一個對象。指針可以在任何時候指向到另一個對象。

3)引用必須在創建時被初始化。指針可以在任何時間被初始化。

下面代碼介紹其應用場景,供參考

/*
* Author:W;
* 變量引用:是已定義聲明的變量的“別名”
* 引用與指針的區別:
* 1)不存在空引用。引用必須連接到一塊合法的內存。
* 2)一旦引用被初始化為一個對象,就不能被指向到另一個對象。指針可以在任何時候指向到另一個對象。
* 3)引用必須在創建時被初始化。指針可以在任何時間被初始化。
*/
 
//引入頭文件:頭文件包含瞭程序中必需的或有用的信息【單行註釋】
#include <iostream>
 
//命名空間使用
using namespace std;
//交換函數聲明
void swap(int& a, int& b);
//設置數組特定位置的值
int& setArrValue(int* array, int index);
 
//main程序執行入口函數
int main()
{
	//聲明變量
	int a = 3;
	//聲明引用變量
	int& b = a;
 
	cout << "=====引用變量=====" << endl;
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
 
	cout << "=====引用變量作為函數參數=====" << endl;
	int c = 4;
	int d = 10;
	cout << "交換之前 :c = " << c << " d = " << d << endl;
	swap(c, d);
	cout << "交換之後 :c = " << c << " d = " << d << endl;
 
	cout << "=====函數返回引用=====" << endl;
	//【返回一個引用時,要註意被引用的對象不能超出作用域。所以返回一個對局部變量的引用是不合法的,但是,可以返回一個對靜態變量的引用。】
	int arr[3] = { 1,4,7 };
	cout << "改變前的值" << endl;
	for (int i = 0; i < 3; i++)
	{
		cout << "arr[" << i << "] = " << arr[i] << endl;
	}
	setArrValue(arr,1) = 5;
	cout << "改變後的值" << endl;
	for (int i = 0; i < 3; i++)
	{
		cout << "arr[" << i << "] = " << arr[i] << endl;
	}
}
 
//改變數組特定位置的值
int& setArrValue(int* array,int index)
{
	int& ref = array[index];
 
	return ref;
}
 
/// <summary>
/// 交換函數聲明
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
void swap(int& a, int& b)
{
	int temp;
	temp = a; /* 保存地址 a 的值 */
	a = b;    /* 把 b 賦值給 a */
	b = temp; /* 把 a 賦值給 b  */
}

運行結果如下:

到此這篇關於C++變量引用的概念介紹的文章就介紹到這瞭,更多相關C++變量引用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: