0

我可以在一个 RAM 地址中存储多少字节?

一个指针的大小是多少?

我只是不确定这些基本概念,我需要一些帮助。谢谢你们。

4

2 回答 2

2

您通常可以在每个内存位置存储一个字节。(旧机器可能使用非八位字节大小,并且这些机器可能在每个内存位置存储一个半字节或 12 或 24 位。)但是现在,8 位是一个字节,一个字节是一个内存位置,尽管它可能不是机器的字长。

指针的大小可能会有所不同:在 32 位平台上,指针通常为 4 个字节。在 64 位平台上,指针通常为 8 个字节。较旧的平台具有不同大小的指针,以允许程序员更密切地优化其程序的内存需求。(我很高兴那些日子一去不复返了。)

第一次启动 C 时让我感到困惑的是,指针引用的内存位置根据指针的数据类型递增不同的数量。

char *c;
int *i;

当使用偏移量或递增指针(c+1i+1)时,编译器将为指针1char *4指针添加。我的汇编器没有提供这样的细节,我花了几个月的时间才掌握了“C 编译器知道类型的大小,只要相信它”的窍门。8int *

于 2011-03-26T01:47:55.317 回答
1

指针在 32 位系统上通常有 4 个字节,在 64 位系统上通常有 8 个字节 - 但这不是固定的,可能取决于系统。

地址只是你记忆中的一个位置,一个指针指向那个位置。但是数据可以超过一个字节 - 指针只显示第一个字节。

于 2011-03-26T01:46:20.637 回答