完成后:
int a = 2;
int b = a;
a = 4;
b
仍然是2,这是非常合乎逻辑的,在大多数情况下非常有用。
a
和b
是否有任何方法可以始终保持相同的值,这意味着当一个更改时,其他也得到相同的价值?
例如:
//magic I am looking for
a = 2;
// now also b is equal to 2
b = 3;
// now also a is equal to 3
最接近我可以得到(你可以忽略它,它可能不会在任何地方领先):
int a =2;
int *ptr = &a;
int *b = ptr;
a = 9;
cout << *b;
且*b
为9,将*b
更改为9也会a == 9
。
但是 a
和*b
不是相同的数据类型(int和指针int),我似乎无法让它在列表中工作。
编辑:我没有指定语言原因我不确定哪一个可能存在。看起来C ++有一些类似的功能(参考),就像我正在寻找的那样。
我唯一担心的是,引用也不能在数组中工作,就像上面的解决方案一样。
答案 0 :(得分:7)
如果您询问C ++,可以使用参考
int a = 2;
int& b = a;
a = 4; // now b also == 4
否则,如果两者都是int
类型,则每个变量在其自己的内存位置包含自己的值,并且不知道&#34;知道&#34;关于另一个,也不会更新一个修改另一个。
答案 1 :(得分:1)
如果您询问C,则不能以这种方式将两个变量链接在一起。
但是,您可以为该变量创建多个指针。然后,当您取消引用任何指针时,您会看到反映的结果。
int a = 1;
int *b = &a;
int *c = &a;
int a = 2;
printf("*b=%d, *c=%d\n", *b, *c);
输出:
*b=2, *c=2