代码1:

int main(){
   int a=1;
   int b=2;
   cout << "&a: "<<&a << endl;
}

输出1:
&a: 0x22ff48

代码2:
int main(){
   int a=1;
   int b=2;
   cout << "&a: "<<&a << endl;
   cout << "&b: "<<&b << endl;
}

输出2:
&a: 0x22ff4c
&b: 0x22ff48


所以我的问题是,当我打印出varibale a的地址时,为什么varibale b的地址发生了变化?

最佳答案

当您根本不使用b时,编译器可能会完全删除它,因此它不占用任何空间。

当您使用b的地址时,这迫使编译器为其分配空间。

关于c++ - 为什么访问变量的地址会更改另一个变量的地址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13771085/

10-11 18:11