当前位置: 首页 > news >正文

js 与 C++引用和指针的关系

js 与 C++引用和指针的关系

js 中既有引用的影子, 也有指针的影子。

1、引用用法

这里相当于C++ 中的引用, b是a的引用, 修改b ,a也改变。

 var a = { 1: 1 }var b = a;a = null;b[2] = 2;console.error(b); // { 1: 1, 2: 2 }
2、指针用法

这里 a,b应该按照指针理解。

var a = undefined;var b = a;a = { 1: 1 }console.error(b); // undefined

C++ 中指针写法:

#include <iostream>int main()
{// 初始int c = 0;int* a = nullptr;int* b = a;// a赋值后a = &c;if (b == nullptr) {std::cout << "b is still nullptr" << std::endl;}return 0;
}

内存形式:

// 初始
| Address | Variable | Value (points to) |
| ------- | -------- | ---------------- |
| 0x1000  | a        | 0x0              |
| 0x1004  | b        | 0x0              |// a赋值后
| Address | Variable | Value (points to) |
| ------- | -------- | ---------------- |
| 0x1000  | a        | 0x2000           |
| 0x1004  | b        | 0x0              |
| 0x2000  | -        | 5                |

================ 结束==================

3、与js 类似写法的C++中引用写法
var a = undefined;var b = a;a = { 1: 1 }console.error(b); // undefined
#include <iostream>int main() {// 初始状态int a;int& b = a;// a赋值后a = 10;std::cout << "b: " << ref << std::endl; // 10return 0;
}

内存状态:

| Address | Variable | Value |
| ------- | -------- | ----- |
| 0x1000  | a (b)    | 未定义|   // 初始状态
| 0x1000  | a (b)    | 10    |   // a赋值后
http://www.lryc.cn/news/443286.html

相关文章:

  • python --PyAibote自动化
  • Ubuntu系统开发环境搭建
  • lvs-dr模式实验详解
  • 【RDMA】mlxconfig修改和查询网卡(固件)配置--驱动工具
  • 跨站请求伪造(CSRF)漏洞详解
  • Java+Spring Cloud +UniApp 智慧工地源码,用户PC端、移动端数据同步,支持多端展示
  • 【推广】图书|2024新书《大模型RAG实战:RAG原理、应用与系统构建》汪鹏、谷清水、卞龙鹏等,机械工业出版社
  • 在Unity UI中实现UILineRenderer组件绘制线条
  • C语言中union的用法
  • C++速通LeetCode中等第18题-删除链表的倒数第N个结点(最简单含注释)
  • 鸿蒙 WebView 设置 Header
  • 电力施工作业安全行为检测图像数据集
  • 大数据实验2.Hadoop 集群搭建(单机/伪分布式/分布式)
  • 【CSS in Depth 2 精译_036】5.6 Grid 网格布局中与对齐相关的属性 + 5.7本章小结
  • Qt圆角窗口
  • 研究生第一次刷力扣day1
  • flink自定义process,使用状态求历史总和(scala)
  • 股指期货理论价格计算公式是什么?
  • 解决R包依赖版本不兼容问题
  • HarmonyOS开发者基础认证考试试题
  • 如何使用 React、TypeScript、TailwindCSS 和 Vite 创建 Chrome 插件
  • 机器学习——Stacking
  • 在HTML中添加图片
  • R语言机器学习算法实战系列(二) SVM算法(Support Vector Machine)
  • gdb调试使用记录
  • ESXi安装【真机和虚拟机】(超详细)
  • 基于SpringBoot+Vue的高校门禁管理系统
  • 【Linux-基础IO】C语言文件接口回顾 系统文件概念及接口
  • 系统架构笔记-3-信息系统基础知识
  • Linux下编程实现网络传送文件