左值使用參考宣告子: &
保存物件的位址,但在語法上模仿物件。
type-id & cast-expression
備註
您可以想像左值參考的另一個物件的名稱。 左值使用參考宣告包含選擇性的規範,後面接著參考宣告子清單。 參照必須初始化,並不能變更。
任何物件,其地址可轉換成指定的指標型別也可以轉換成類似參考型別。 比方說,其地址可以轉換成輸入的任何物件char *可以轉換成型別char &。
請勿混淆參考宣告中的,以使用傳址運算子。 當& 識別項的開頭為型別,例如int或char, 識別項宣告為型別的參考。 當& 識別項之前沒有型別,所使用,就是傳址運算子。
範例
下列範例會示範參考宣告子宣告Person物件,該物件的參考。 因為rFriend就是參考myFriend,不論是哪一變數的更新會變更相同的物件。
// reference_declarator.cpp
// compile with: /EHsc
// Demonstrates the reference declarator.
#include <iostream>
using namespace std;
struct Person
{
char* Name;
short Age;
};
int main()
{
// Declare a Person object.
Person myFriend;
// Declare a reference to the Person object.
Person& rFriend = myFriend;
// Set the fields of the Person object.
// Updating either variable changes the same object.
myFriend.Name = "Bill";
rFriend.Age = 40;
// Print the fields of the Person object to the console.
cout << rFriend.Name << " is " << myFriend.Age << endl;
}