int x=1,y= 2;int *px = &x;
int &rx = *px;
*px = 3;
x=4;
px = &y;
coutくく*px <く"," <くrx <くendl;
为什么结果不是2,2,rx不是*px的别名吗?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 社区专家-Monster-XH 2023-04-23 20:14关注
基于Monster 组和GPT的调写:
- 输出的结果应该是 "2,4"。
- 原因是在执行语句 px = &y; 后,px 的值被改为指向变量 y 的地址,因此接下来 *px 的值为 2。而 rx 是 *px 的别名,即 rx 与 *px 指向同一个内存地址,因此 rx 的值也是 2。在执行语句 x=4; 后,变量 x 的值被改为 4,因此 *px 的值也被改为 4。由于 rx 是 *px 的别名,因此 rx 的值也被改为 4。最后输出的结果就是 2,4。
- rx 是一个引用类型的变量,它必须在定义时初始化,并且不能被重新绑定到另一个变量。在这个例子中,rx 的初始化语句 int &rx = *px; 把 rx 绑定到了 *px 所指向的内存地址。因此,rx 的值随着 *px 的值的变化而变化。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 下图接收小电路,谁知道原理
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭