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

时间:2015-06-18 18:50:55

标签: c++ syntax reference

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

int i;

iint

int *i;

取消引用i后,结果为int

int i[];

下标i时,结果为int

int *i[];

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

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

int &i = x;

“当i的地址被采用时,结果是int”毫无意义。

我是否遗漏了某些东西,或者这是否真的是其他sytax背后明显推理的例外?如果是例外,为什么选择这种语法?

编辑:

This question解决了为什么&符号可能被选择用于此目的的原因,而不是是否存在一种普遍一致的方式来阅读与上述方式不同的声明。

1 个答案:

答案 0 :(得分:5)

绑定后,引用将成为其引用对象的别名,并且无法与其区分(decltype除外)。由于int&int的用法完全相同,因此声明跟随用法语法无法用于声明引用。

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