1. 程式人生 > >C++入門經典-例5.16-輸出引用

C++入門經典-例5.16-輸出引用

namespace 示例代碼 pan spa 賦值 amp http display 控制臺

1:如不加特殊說明,一般認為引用指的都是左值引用。引用實際上是一種隱式指針,它為對象建立一個別名,通過操作符&來實現,引用的形式如下:

數據類型 & 表達式;

例如:

int a=10;

int & ia=a;

ia=2;

上面的程序定義了一個引用變量ia,它是變量名a的別名,對ia的操作與對a的操作完全一樣。“ia=2”把2賦給a,“&ia”返回a的地址。執行“ia=2”和執行“a=2”等價。

使用引用的說明如下:

(1)一個C++引用被初始化後,無法使用它再去引用另一個對象,它不能被重新約束。

(2)引用變量只是其他對象的別名,對它的操作與原來對象的操作具有相同作用。

(3)指針變量與引用主要區別有兩點:一是指針是一種數據類型,而引用不是一個數據類型,指針可以轉換為它所指向變量的數據類型,以便使賦值運算符兩邊的類型相匹配;而使用引用時,系統要求引用和變量的數據類型必須相同,否則不能進行數據類型轉換。二是指針變量和引用變量都用來指向其它變量,但指針變量使用的語法要復雜一些;定義引用變量後,其使用方法和普通變來那個相同。

例如:

int a;

int *pa=&a;

int & ia=a;

示例代碼如下:

技術分享
// 5.16.cpp : 定義控制臺應用程序的入口點。
//

#include "stdafx.h"
#include <iostream>
using
namespace std; void main() { int a; int & ref_a = a; a = 100; cout << "a= " << a << endl; cout << "ref_a=" << ref_a << endl; a = 2; cout << "a= " << a << endl; cout << "ref_a=" << ref_a << endl;
int b = 20; ref_a = b; cout << "a= " << a << endl; cout << "ref_a=" << ref_a << endl; ref_a--; cout << "a= " << a << endl; cout << "ref_a=" << ref_a << endl; }
View Code

運行結果:

技術分享

C++入門經典-例5.16-輸出引用