gpt4 book ai didi

c++ - C union 字符数组在 mac 上打印 'd'?

转载 作者:太空狗 更新时间:2023-10-29 23:25:35 27 4
gpt4 key购买 nike

我是 C/C++ 的新手,但很想知道我遇到的问题。

typedef union
{
int a;
float c;
char b[20];
}
Union;

int main()
{
Union y = {100};
printf("Union y :%d - %s - %f \n",y.a,y.b,y.c);
}

输出是

 Union y :100 - d - 0.000000

我的问题是……为什么要打印“d”?我更改了 union 中的顺序仍然是相同的输出。但是,如果我在 union 之外声明一个 char f[20],则不会打印任何内容。我有 MacBook 狮子图像并使用 xcode。提前致谢

最佳答案

'd' 的 ASCII 码是 100。将 a 设置为 100 相当于将 b 设置为 {'d' , '\0', '\0', '\0', …noise…}(在 32 位小端机器上),printf 将其视为 “d”

关于c++ - C union 字符数组在 mac 上打印 'd'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16115904/

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