gpt4 book ai didi

c++ - 指针寻址如何在 C++ 中工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:53 25 4
gpt4 key购买 nike

我对指向变量地址的指针感到困惑 image

它指向最后两个字节这是如何工作的

#include <iostream>
using namespace std;

int main()
{
int i = 1;
short *j = (short*)&i;
cout << *j << endl;
}

.

最佳答案

指针通常保存所指项目的开头地址。

从事物的声音来看,您显然使用的是小端系统[编辑:这并不奇怪——例如,当前的 (Intel) Mac 和所有 Windows 机器都是小端],这意味着4 字节 int 的最低有效字节在内存中第一个而不是最后一个:

0000001 00000000 00000000 00000000

当您使用指向 short 的指针查看前两个字节时,您会得到:

0000001 00000000

这正是它希望看到一个值 1 表示为一个双字节数字的方式,所以这就是您得到的结果。

正如名称“little-endian”所暗示的那样,也有 big-endian 系统,其中数据将按照您上面的说明进行布局。在这样的机器上,您可能会得到预期的结果。为了完整起见,还有一些系统使用相当奇怪的安排,可能会运行类似 byte1 byte0 byte3 byte2 的内容。

关于c++ - 指针寻址如何在 C++ 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9979081/

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