700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c语言指向读取的字节数的指针 c - C语言中指针的大小 - SO中文参考 - www.soinside.com...

c语言指向读取的字节数的指针 c - C语言中指针的大小 - SO中文参考 - www.soinside.com...

时间:2020-03-02 16:48:49

相关推荐

c语言指向读取的字节数的指针 c - C语言中指针的大小 - SO中文参考 - www.soinside.com...

数据存储在内存中。该内存有一个地址。指针保存数据开始。的内存地址。

具体地说,指针通常保存类型所驻留的数据的“第一个字节”的地址(注意,从技术上讲,第一个字节可能包含数据的最后一位,具体取决于endianness。

即,如果long double是128位(16字节),则指针值将指向第一个字节,而指针类型将指示应读取的字节数。

如果您将示例中的long double指针“广播”到int *(int指针),则仅会读取sizeof(int)字节-但是值(第一个字节的地址)将保留一样。

因此,指针值忽略了数据的大小,指针仅需要足够大才能包含第一个字节的地址。因此,指针通常具有与computer's "address space"相同的长度。

它非常类似于图书馆中的目录卡。就像库中的“书本地址”取决于库的大小一样,指针值(内存地址)也取决于计算机的“地址空间”的大小,不是类型的大小。] >

在大多数32位和64位CPU上,地址空间限制为32位或64位。但是,某些系统具有用于特殊指针(例如函数指针)的特殊地址空间...这几乎已过时。当CPUS小于32位并且“地址空间”受到限制时,它被更多地使用。

请注意,地址空间(指针)中的值可以指向硬件上的任何位置(通常是内存中的一个字节,但有时是寄存器或一块硬件)...这就是为什么操作系统(内核)可以利用一些硬件支持,通常会为每个进程公开一个“虚拟”地址空间,从而保护硬件和其他处理过程免受异常进程的影响。

P.S。

我喜欢@linuxfansaysReinstateMonica给出的答案。但是,我发现我想澄清该答案中的一些信息。您应该真正阅读它。该答案主要是对其答案的澄清。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。