当我们为变量分配引用时会发生什么?

帕特洛克罗斯
void func(){
    int a = 1;
    int b = a; // copy assignemnt
    int &c = a; // nothing?
    int d = c; // nothing?
}

例如,当我们分配对 的引用cd,是否触发了任何事情(移动、复制等)?

如果d是实例成员怎么办?将局部变量引用存储到其中是否安全?

托尼·德尔罗伊

当我们将引用 c 分配给 d 时,是否触发了任何事情(移动、复制等)?

你的术语让我很困惑!如果您在谈论dand c,我假设您指的是int d = c;我将其描述为“分配c所指的任何内容d”。“将引用 c 分配给 d”听起来太像int& c = d;.

您的代码有:

int &c = a; // nothing?
int d = c; // nothing?

在第一行中,没有发生任何您需要关心的事情......c可以被认为是 的昵称或别名ac(在隐藏的实现级别,将图像作为自动取消引用的指针变量可能会或可能不会有帮助,并且您int &c = a;类似于int* p_c = &a;- 它不会复制或移动任何int值,也不会a以任何方式更改。)

在第二行中,为变量d分配了来自 的值的副本a

如果 d 是实例成员怎么办?将局部变量引用存储到其中是否安全?

你在想这个错误的方式。当您分配给成员引用时,您分配给被引用的对象,而不是引用本身。被引用的对象将是另一个int地方,从一个int到另一个的分配照常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在python中,当我们为变量分配新值时,旧变量会发生什么?

当我们将 2 个值分配给同一个变量时会发生什么?

当我在 java 中声明引用类型变量并分配 Sub-Type 实例时会发生什么

当我们不等待异步方法时会发生什么

itemgetter如何工作?当我们将其初始化为密钥时会发生什么

当我们在 C++ 中使用“while”时会发生什么转换?

当我们在Python的类中给出函数定义时会发生什么

当我们调用puppeteer waitForSelector API时会发生什么

当我们尝试设置当前执行代码的寄存器时会发生什么?

当我们在html标记中包含错误的属性时会发生什么?

当我们在方法内部创建锁(同步块)对象时会发生什么?

当我们向GPIO写入0时会发生什么

当我们单击SSMS的“新查询”按钮时会发生什么?

当我们在Collections.synchronizedMap()中传递哈希表时会发生什么

当我们停止并启动ec2实例AWS时会发生什么

当我们将char转换为大于256的数字时会发生什么?

当我们运行julia-lang脚本时会发生什么?

当我们改变循环中的值时会发生什么?

当我们在C ++中更改字符串的值时会发生什么

当我们使用%d扫描字符时会发生什么?

当我们使用json键作为JS代码时会发生什么情况?

当我们通过该函数传递值结果时会发生什么?

当我们修改现有Office加载项的清单时会发生什么?

当我们有多个 Java 线程时,运行时会发生什么?

当我们git checkout一个提交时会发生什么

当我们上课时会发生什么?

当我们将参数传递给System.out.println()时会发生什么?

当我们将jar提交给风暴集群时会发生什么情况?

当我们尝试修改字符串常量时会发生什么?