gpt4 book ai didi

c - C 中的指针与类型转换

转载 作者:行者123 更新时间:2023-12-01 07:46:34 24 4
gpt4 key购买 nike

#include<stdio.h> 
int main()
{
int a;
char *x;
x = (char *) &a;
a = 512;
x[0] = 1;
x[1] = 2;
printf("%d\n",a);
return 0;
}

我无法理解输出是如何依赖于 513 甚至机器的事实?我能感觉到类型转换起着重要作用,但幕后发生了什么,有人能帮我想象一下这个问题吗?

最佳答案

int a 以 4 个字节存储在内存中。数字 512 在您的机器上表示为:

0 2 0 0

当您分配给 x[0]x[1] 时,它会将其更改为:

1 2 0 0

这是数字 513

这是机器相关的,因为多字节数字中的字节顺序不是由 C 语言指定的。

关于c - C 中的指针与类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43664832/

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