多次定义的引用变量 在C++中,一旦定义了引用变量来引用特定变量,它是否可以引用任何其他变量?< /p>
我用于测试的代码如下所示:多次定义的引用变量 在C++中,一旦定义了引用变量来引用特定变量,它是否可以引用任何其他变量?< /p>,c++,C++,我用于测试的代码如下所示: int r1 =1001; int r2 =10023; int &r3 = r1; r3 = r2; r3 = 999; r3 = 555; int r4 = 11; r3 = r4; r3 = 10177; cout<<r3<<endl; cout<<r1<<endl; cout<<r2<<endl; cout<<r4<<endl; 一旦一个引用变量被定义为
int r1 =1001;
int r2 =10023;
int &r3 = r1;
r3 = r2;
r3 = 999;
r3 = 555;
int r4 = 11;
r3 = r4;
r3 = 10177;
cout<<r3<<endl;
cout<<r1<<endl;
cout<<r2<<endl;
cout<<r4<<endl;
一旦一个引用变量被定义为引用一个特定变量,它就可以引用C++中的任何其他变量
否。引用在初始化时绑定,不能重新绑定。初始化后,引用只是绑定到的对象的别名,引用必须始终初始化
换句话说,对引用执行的任何操作都是对被引用的对象执行的。例如,在这里:
int &r3 = r1;
您正在将r3
绑定到r1
,因此r3
将是r1
的别名(类似于替代名称)。这意味着后续转让:
r3 = r2;
不重新绑定r3
以引用r2
:而是将r2
分配给r1
。了解了这一点,您应该能够了解程序其余部分的行为
一旦一个引用变量被定义为引用一个特定变量,它就可以引用C++中的任何其他变量
否。引用在初始化时绑定,不能重新绑定。初始化后,引用只是绑定到的对象的别名,引用必须始终初始化
换句话说,对引用执行的任何操作都是对被引用的对象执行的。例如,在这里:
int &r3 = r1;
您正在将r3
绑定到r1
,因此r3
将是r1
的别名(类似于替代名称)。这意味着后续转让:
r3 = r2;
不重新绑定
r3
以引用r2
:而是将r2
分配给r1
。知道了这一点,您应该能够了解程序其余部分的行为。不,引用在初始化后不能绑定到另一个对象
int r1 =1001;
int r2 =10023;
int &r3 = r1;
r3=r2;
这里,
r3
绑定到对象r1
,值为1001
。然后名称r3
的行为与您使用的名称r1
完全相同-它就像一个别名。将r2
的值指定给该对象时,r1
现在包含值10023
否,引用在初始化后不能绑定到另一个对象
int r1 =1001;
int r2 =10023;
int &r3 = r1;
r3=r2;
这里,
r3
绑定到对象r1
,值为1001
。然后名称r3
的行为与您使用的名称r1
完全相同-它就像一个别名。当您将r2
的值分配给该对象时,r1
现在包含值10023
以下是您的代码和注释,可以帮助您理解:
int r1 = 1001; // r1 now holds the value 1001
int r2 = 10023; // r2 now holds the value 10023
int &r3 = r1; // using r3 is now like using r1
r3=r2; // same as r1=r2; r1 now holds the value 10023
r3 = 999; // same as r1 = 999; r1 now holds the value 999
r3 = 555; // same as r1 = 555; r1 now holds the value 555
int r4 = 11; // r4 now holds the value 11
r3=r4; // same as r1 = r4; r1 now holds the value 11
r3 = 10177; // same as r1 = 10177; r1 now holds the value 10177
cout<<r3<<endl; // same as printing r1 which is 10177
cout<<r1<<endl; // prints 10177
cout<<r2<<endl; // prints 10023
cout<<r4<<endl; // prints 11
int r1=1001;//r1现在保存值1001
int r2=10023;//r2现在保存值10023
int&r3=r1;//现在使用r3就像使用r1一样
r3=r2;//与r1=r2相同;r1现在保存值10023
r3=999;//与r1=999相同;r1现在保存值999
r3=555;//与r1=555相同;r1现在保存值555
int r4=11;//r4现在保存值11
r3=r4;//与r1=r4相同;r1现在保存值11
r3=10177;//与r1=10177相同;r1现在保存值10177
cout这是您的代码和注释,可以帮助您理解:
int r1 = 1001; // r1 now holds the value 1001
int r2 = 10023; // r2 now holds the value 10023
int &r3 = r1; // using r3 is now like using r1
r3=r2; // same as r1=r2; r1 now holds the value 10023
r3 = 999; // same as r1 = 999; r1 now holds the value 999
r3 = 555; // same as r1 = 555; r1 now holds the value 555
int r4 = 11; // r4 now holds the value 11
r3=r4; // same as r1 = r4; r1 now holds the value 11
r3 = 10177; // same as r1 = 10177; r1 now holds the value 10177
cout<<r3<<endl; // same as printing r1 which is 10177
cout<<r1<<endl; // prints 10177
cout<<r2<<endl; // prints 10023
cout<<r4<<endl; // prints 11
int r1=1001;//r1现在保存值1001
int r2=10023;//r2现在保存值10023
int&r3=r1;//现在使用r3就像使用r1一样
r3=r2;//与r1=r2相同;r1现在保存值10023
r3=999;//与r1=999相同;r1现在保存值999
r3=555;//与r1=555相同;r1现在保存值555
int r4=11;//r4现在保存值11
r3=r4;//与r1=r4相同;r1现在保存值11
r3=10177;//与r1=10177相同;r1现在保存值10177
库特诺。您甚至不能忽略引用的初始化。您对哪一部分感到困惑?r3=r2代码>正在将r2的值分配给r3,而不是引用。因此,它们仍然指向不同的内存位置,但在此语句之后具有相同的值。否。您甚至不能忽略引用的初始化。您对哪一部分感到困惑?r3=r2代码>正在将r2的值分配给r3,而不是引用。因此,它们仍然指向不同的内存位置,但在该语句之后具有相同的值。您可以提及声明,而不必对引用进行非法初始化。+1。安迪,你为什么不更新你的个人资料?除了思考问题的可能解决方案并在我来到这里时学习之外,我还想知道andy prowl是谁:-)。很高兴看到你的答案和其他伟大的答案在一起,但这总是困扰着我:-)希望你尽快更新你的个人资料:-@Koushik:迟早我会的,但看到我真的没人,不要失望;)我要感谢你给我学习的机会。:-。期待着从您那里看到更多精彩的答案。祝您一切顺利,请尽快完成此项任务:-)您可以提及声明,而不必对引用进行非法初始化。+1。安迪,你为什么不更新你的个人资料?除了思考问题的可能解决方案并在我来到这里时学习之外,我还想知道andy prowl是谁:-)。很高兴看到你的答案和其他伟大的答案在一起,但这总是困扰着我:-)希望你尽快更新你的个人资料:-@Koushik:迟早我会的,但看到我真的没人,不要失望;)我要感谢你给我学习的机会。:-。期待着从您那里看到更多精彩的答案。祝您一切顺利,请尽快完成此项任务:-)