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