在 C++ 中,和号字符 ( &
) 可用于获取左值、函数指示符或限定名称的地址。.
int y;
int* p_to_y = &y;
该字符在 C++ 中作为引用声明符有共同用途。.
int y;
int& y_alias = y;
在粗略了解C后学习C++时,这种双重用法让我很困惑!我知道使用该符号的上下文有很大的不同,但鉴于引用和指针是不应混淆的重要概念,任何人都可以提出为什么&
被回收而不是使用新的替代符号?
谁能建议为什么
&
被回收
因为&y
和int&
两者在某种程度上都是“关于地址”的:一个创建一个指针,它是内存地址的薄抽象,另一个表示一个引用,就像一个永远不会为空的指针。
首先,别担心,你很快就会克服这种困惑。
可能有多种原因:
从逻辑上讲,它们以某种方式相连。引用的行为类似于指针,它是对象的地址。
没有很多免费符号。看着我的键盘顶行,我只能看到……嗯,只有$
和@
。我个人也不喜欢,但这可能只是因为我习惯了&
。
您提供的反理由可以被视为支持理由 - 即不要在语言中添加另一个符号。想一想 - C++ 中可用的大多数符号也可以在 C 中使用。其目的可能是让从 C 迁移的人们获得平滑的学习曲线。由于&
在逻辑上与引用的概念相关,因此它是最合适的。