为什么不能在C+中重新初始化引用+;? 为什么引用不能在C++中重新初始化,而指针可以被重新初始化? int x=5; int y=6; int *p1; p1 = &x; p1 = &y; //re-initializing the pointer but same can not be done with references int &r1 =x;//can be initialized only once

为什么不能在C+中重新初始化引用+;? 为什么引用不能在C++中重新初始化,而指针可以被重新初始化? int x=5; int y=6; int *p1; p1 = &x; p1 = &y; //re-initializing the pointer but same can not be done with references int &r1 =x;//can be initialized only once,c++,pointers,reference,C++,Pointers,Reference,没有明显的语法。您不能使用正常的=语法;设置引用的基础指针的值。也许你可以想出这样的语法: &my_reference = new_value; 但这有点奇怪和尴尬。没有明显的语法。您不能使用正常的=语法;设置引用的基础指针的值。也许你可以想出这样的语法: &my_reference = new_value; 但这有点奇怪和尴尬。请参阅相关问题非常简短的回答:因为如果它们位于何处,它们将具有完全重复的指针功能(可变重定向)请参阅相关问题非常简短的回答:因为如果它们位于何处,它

没有明显的语法。您不能使用正常的
=
语法;设置引用的基础指针的值。也许你可以想出这样的语法:

&my_reference = new_value;

但这有点奇怪和尴尬。

没有明显的语法。您不能使用正常的
=
语法;设置引用的基础指针的值。也许你可以想出这样的语法:

&my_reference = new_value;

但这有点奇怪和尴尬。

请参阅相关问题非常简短的回答:因为如果它们位于何处,它们将具有完全重复的指针功能(可变重定向)请参阅相关问题非常简短的回答:因为如果它们位于何处,它们将具有完全重复的指针功能(可变重定向)这在任何形式下都是不可能的
&variable
始终是一个右值,右值不能是赋值的左操作数。@Nbr44我想你是指右值,因为左值这个名称源于它通常位于赋值的左侧。Ooopsies,右值确实是!谢谢@我知道这是不可能的。我想说的是,这种特性被排除在语言之外,至少部分是因为缺少明显的语法。然后我列出了一个可能的样本,它可能看起来像什么,但随后指出,用我的话来说,它将是“奇怪和尴尬的”,我声称这就是为什么它没有被选中的原因。我从来没有说过这是受支持的语法。好吧,我误解了-我道歉!我认为还有一个相当技术方面的原因,为什么它被遗漏了。我看不出这种机制在C/C++内部运行良好……这在任何形式下都是不可能的
&variable
始终是一个右值,右值不能是赋值的左操作数。@Nbr44我想你是指右值,因为左值这个名称源于它通常位于赋值的左侧。Ooopsies,右值确实是!谢谢@我知道这是不可能的。我想说的是,这种特性被排除在语言之外,至少部分是因为缺少明显的语法。然后我列出了一个可能的样本,它可能看起来像什么,但随后指出,用我的话来说,它将是“奇怪和尴尬的”,我声称这就是为什么它没有被选中的原因。我从来没有说过这是受支持的语法。好吧,我误解了-我道歉!我认为还有一个相当技术方面的原因,为什么它被遗漏了。我看不出这种机制在C/C++内部运行良好。。。