在C语言中,指针变量的值就是一个内存地址,&运算符的作用也是取变量的内存地址。
#include<iostream>
using namespace std;
int a = 1, b = 255;
int main(){
int *pa = &a;
cout << "pa = " << pa << endl;
cout << "&b = " << &b << endl;
return 0;
}
/*运行结果*/
pa = 0x472010
&b = 0x472014
//代码中的a, b是全局变量,它们的内存地址在链接时就已经决定了,以后再也不能改变。
//如果物理内存中这两个地址被占用了怎么办?
//这些内存地址都是虚拟地址,需要通过CPU转换才能对应到物理地址。
//而且每次程序运行时,操作系统都会重新安排虚拟地址和物理地址的对应关系,哪一段物理内存空闲就使用哪一段。
原文:https://www.cnblogs.com/xiaobaizzz/p/12341913.html