gpt4 book ai didi

c - 没有结构名称的结构

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

下面定义的结构没有结构名称。此外,我无法获得数组部分。提前致谢。结构数组中的值是什么意思?

#include <stdio.h>
int main()
{
struct
{
int x,y;
} s[] = {10,20,15,25,8,75,6,2};
int *i;
i = s;

clrscr();
printf("%d\n",*(i+3));
return 0;
}

最佳答案

现在我们有了一个可以回答的问题:

struct
{
int x,y;
} s[] = {10,20,15,25,8,75,6,2};

这声明了一个名为 s 的匿名结构数组。每个结构都有两个 int 字段。未指定数组大小,因此它将与保存初始化程序列表所需的大小一样大(“初始化程序列表”是等号后用大括号括起来的数字列表的技术术语)。

你课本上的代码草率;它没有在初始化列表中标记子结构;这是允许的,但被认为是糟糕的风格。编译器将其解释为与代码完全相同:

struct
{
int x,y;
} s[] = { {10,20}, {15,25}, {8,75}, {6,2} };

每个用大括号括起来的数字对初始化数组 s 的一个元素。第一个数字初始化 x,第二个数字初始化 y。所以,所有这些都是真的:

s[0].x == 10
s[0].y == 20
s[1].x == 15
s[1].y == 25

等等。

关于c - 没有结构名称的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3628938/

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