什么是网站搭建,网站动态静态,京东的网站建设规划,手机网站大全推荐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 undef…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); // undefinedC 中指针写法:
#include iostreamint 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 iostreamint 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赋值后