我正在阅读 Kernighan 和 Ritchie 所著的《C 编程语言》的一些部分。在指针部分,作者指出:
“变量声明的语法模仿变量可能出现的表达式的语法。”
我相信这个原则类似于C和C++编程中经常讨论的“声明反映使用”规则。 然而,当我开始学习C++中的引用变量时,我发现很难应用这个规则。例如:
int& ref = x;
与声明不同,ref 的使用不需要 & 符号。
有偏离此原则供参考吗?
我的问题是:
K&R的声明与“声明反映使用”规则相同吗?
此规则是否适用于 C++ 引用变量?如果是这样,怎么办? 如果不适用,为什么 C++ 可能会偏离这个参考原则?
引用的全部要点在于,当在表达式中使用它们的名称时,它们的行为“完全”就像您使用了它们所引用的变量的名称一样。不应该像指针那样需要首先应用任何特殊语法(*
)。
因此,如果预期的行为应该是可能的,则该规则并非不适用,也不能适用。
为什么在表达式中已经具有含义的符号(
&
)被用来表示引用而不是例如引入新的关键字或标记,您可能需要询问 Bjarne Stroustrup。我的猜测是,当时这只是方便而已。