左值引用声明:&
保存对象的地址,而语法上的行为与对象。
type-id & cast-expression
备注
可以将左值作为引用另一个名称。对象。 lvalue 提供了包括选项引用声明后面的列表说明符。 必须初始化引用且无法更改。
地址可以转换为特定指针类型的所有对象也可以转换为类似引用类型。 例如,的地址可被强制转换为类型 char * 的所有对象也强制转换为类型 char &。
不要混淆引用与 address-of 运算符的说明。 当 & 标识符 在一个类型后,例如 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;
}