gpt4 book ai didi

c - 内存地址和数据类型简介

转载 作者:行者123 更新时间:2023-11-30 19:55:58 25 4
gpt4 key购买 nike

我正在阅读一些关于 C 语言中的内存地址和数据类型的论文,我已经很好地掌握了内容,但我偶然发现了一些数学知识,而且我似乎无法在互联网上的任何地方弄清楚它。

假设我创建两个局部变量

void foo(void){
int i, j;
printf("int i is stored in %p\n", &i);
printf("int j is stored in %p\n", &j);
}

我得到的输出是

int i is stored in 0x6ffc88
int j is stored in 0x6ffc84

在我正在阅读的文本中,整数的大小为 4 个字节(与我的计算机相同)。因此,int i 应该分配 4 个字节。但 int iint j 的内存地址之间的差异只有 4 位 (0100)。

差异是否意味着更大,例如 4 个字节 (0xffffffff)?

请问我在哪里造成了困惑?

最佳答案

j 位于 BYTE 地址 0x6ffc84,0x6ffc85,0x6ffc86,0x6ffc87,因此为 32 位。

i 位于 BYTE 地址 0x6ffc88,0x6ffc89,0x6ffc8a,0x6ffc8b,因此为 32 位。

除了像 8051 这样的微 Controller 恐怖之外,现代的重要处理器架构没有位可寻址内存。

关于c - 内存地址和数据类型简介,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44972679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com