代码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/