C++参考变量声明语法推理

Vae*_*lus 1 c++ syntax reference

例如,C++中的所有其他声明语法都很有意义:

int i;
Run Code Online (Sandbox Code Playgroud)

i 是一个 int

int *i;
Run Code Online (Sandbox Code Playgroud)

i取消引用时,结果是int

int i[];
Run Code Online (Sandbox Code Playgroud)

什么时候i下标,结果是和int

int *i[];
Run Code Online (Sandbox Code Playgroud)

i订阅时,结果是derefrenced,最终结果是int

但是当你看一下参考变量的语法时,这种一致的推理就会崩溃.

int &i = x;
Run Code Online (Sandbox Code Playgroud)

"当i采取地址时,结果是int"没有意义.

我错过了什么,或者这真的是其他sytaxes背后明显推理的例外吗?如果是例外,为什么选择这种语法?

编辑:

这个问题解决了为什么&为此目的而选择符号的问题,而不是为什么是否存在一种通用的一致方式来阅读与上述方式不同的声明.

Bri*_*ian 5

绑定后,引用将成为其引用的别名,并且无法与其区分(除非decltype).由于int&完全按原样使用int,声明跟随用法语法不能用于声明引用.

声明引用的语法仍然很简单.只需写下相应指针类型的声明,然后用或替换*用于初始取消引用的声明.&&&