加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

没有结构名称的结构

发布时间:2020-12-16 10:45:31 所属栏目:百科 来源:网络整理
导读:下面定义的结构没有结构名称.而且我无法得到阵列部分.提前致谢. 结构数组中的值是什么意思? #include stdio.hint main(){ struct { int x,y; } s[] = {10,20,15,25,8,75,6,2}; int *i; i = s; clrscr(); printf("%dn",*(i+3)); return 0;} 解决方法 现在我
下面定义的结构没有结构名称.而且我无法得到阵列部分.提前致谢.
结构数组中的值是什么意思?

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

    clrscr();
    printf("%dn",*(i+3));
    return 0;
}

解决方法

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

struct
{
    int x,y;
} s[] = {10,2};

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

教科书中的代码很草率;它没有标记初始化列表中的子结构;这是允许的,但被认为是糟糕的风格.编译器解释它与代码完全相同:

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

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

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

等等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读