whm2323063185 发表于 2021-4-27 12:52:38

关于指针的问题

指针只占4个字节,那么能表示的地址数量应该和int的最大值一样,如果电脑内存很大,后面的内存不就不能用了吗?

但事实好像不是这样! 求解

liaoziying1998 发表于 2021-4-27 12:52:39

一个地址指向的存储空间有很多位,比如windows的64位,这样存储空间就可以有地址数*存储单元大小

Json21 发表于 2021-4-27 13:09:56

是程序的最大寻址4G。你说的可能是物理内存,需要了解虚拟地址映射。

whm2323063185 发表于 2021-4-27 13:18:47

Json21 发表于 2021-4-27 13:09
是程序的最大寻址4G。你说的可能是物理内存,需要了解虚拟地址映射。

我也不知道是什么内存,只是突发奇想。是程序的内存的话,不是又限制了程序的大小吗,求指点

霸气草莓 发表于 2021-4-27 13:20:53

定义一个变量实际就是向计算机申请了一块内存来存放。
可以通过运算符&来取得变量实际的地址,这个值就是变量所占内存块的起始地址。
(PS: 实际上这个地址是虚拟地址,并不是真正物理内存上的地址)

我们可以把这个地址打印出来: printf("%x", &a);
大概会是像这样的一串数字:0x7ffcad3b8f3c

所以指针最大是0xffffffffffff,即是2^48=2^8T=, 所以暂时不会超过内存

liaoziying1998 发表于 2021-4-27 19:19:50

了解单片机的话,就比较容易理解
页: [1]
查看完整版本: 关于指针的问题