gpt4 book ai didi

c - 为什么打印结构变量会给出第一个元素的值?

转载 作者:太空宇宙 更新时间:2023-11-04 00:47:34 25 4
gpt4 key购买 nike

考虑这段代码:

#include<stdio.h>

struct s{
int i;
} C;

int main(){
C.i=8;
printf("%u %u",C,C.i);
}

输出:

8  8

为什么打印C给出第一个元素的值?

最佳答案

你不应该以任何方式依赖它,因为它是未定义的行为%u 格式说明符需要类型为 unsigned int 的表达式,而您传递的是 struct C。对于 int 类型,使用 %d%i

结果是 8,因为结构与任何其他对象一样按值传递。它只有一个成员,因此很可能与 int 类型的对象具有相同的大小。换句话说:

sizeof(int) == sizeof(struct C)

持有。 printf() 函数将 struct object 解释为 unsigned int,因此您得到相同的数字。

关于c - 为什么打印结构变量会给出第一个元素的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31770125/

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