关于指针的问题
指针只占4个字节,那么能表示的地址数量应该和int的最大值一样,如果电脑内存很大,后面的内存不就不能用了吗?但事实好像不是这样! 求解 一个地址指向的存储空间有很多位,比如windows的64位,这样存储空间就可以有地址数*存储单元大小 是程序的最大寻址4G。你说的可能是物理内存,需要了解虚拟地址映射。 Json21 发表于 2021-4-27 13:09
是程序的最大寻址4G。你说的可能是物理内存,需要了解虚拟地址映射。
我也不知道是什么内存,只是突发奇想。是程序的内存的话,不是又限制了程序的大小吗,求指点 定义一个变量实际就是向计算机申请了一块内存来存放。
可以通过运算符&来取得变量实际的地址,这个值就是变量所占内存块的起始地址。
(PS: 实际上这个地址是虚拟地址,并不是真正物理内存上的地址)
我们可以把这个地址打印出来: printf("%x", &a);
大概会是像这样的一串数字:0x7ffcad3b8f3c
所以指针最大是0xffffffffffff,即是2^48=2^8T=, 所以暂时不会超过内存
了解单片机的话,就比较容易理解
页:
[1]