引用 (C++)

可以通过以下语法声明引用:

[storage-class-specifiers] [cv-qualifiers] type-specifiers 
[ms-modifier] declarator [= expression];

可以使用指定引用的任何有效声明符。 除非引用是对函数或数组类型的引用,否则应用以下简化语法:

[storage-class-specifiers] [cv-qualifiers] type-specifiers & 
[cv-qualifiers] identifier [= expression];

使用以下序列声明引用:

1. 声明说明符:

  • 可选存储类说明符。

  • 可选 const 和/或 volatile 限定符。

  • 类型说明符:类型的名称。

  • 2. 声明符:

  • 可选的 Microsoft 专用修饰符。 有关详细信息,请参阅 Microsoft 专用修饰符

  • & 运算符。

  • 可选 const 和/或 volatile 限定符。

  • 标识符。

3. 可选初始值设定项。

指向数组和函数的指针的更复杂的声明符形式也适用于对数组和函数的引用,请参阅指针声明符

多个声明符和初始值设定项可能出现在一个声明说明符后面的逗号分隔的列表中。 例如:

int &i; 
int &i, &j; 

引用、指针和对象可以一起声明:

int &ref, *ptr, k; 

引用保留对象的地址,但语法行为与对象一样。

在下面的程序中,请注意对象的名称 Today 和对象的引用 TodayRef 可在程序中以相同的方式使用:

示例

// references.cpp
#include <stdio.h>
struct S {
   short i;
};

int main() {
   S  s;   // Declare the object.
   S& SRef = s;   // Declare the reference.
   s.i = 3;

   printf_s("%d\n", s.i);
   printf_s("%d\n", SRef.i);

   SRef.i = 4;
   printf_s("%d\n", s.i);
   printf_s("%d\n", SRef.i);
}
  

注释

本节中的主题:

请参见

参考

初始化引用