C 中的结构体数组初始化

2024-04-27

这是我的代码的一部分。我只想初始化arraylist[0] as arraylist[0].x = 0 and arraylist[0].y = 0。我不需要初始化结构体数组的其余部分。我该怎么做?谢谢。

#include <stdio.h>
struct example {
    int x;
    int y;
};
struct example arraylist[40];

int main(int argc, char *argv[]){
    printf("%d\n %d\n", arraylist[0].x, arraylist[0].y);
    return 0;
}

您可以初始化结构体数组的任何特定元素。

例如:

struct example arraylist[40] = { [0]={0,0}}; //sets 0th element of struct

struct example arraylist[40] = { [5]={0,0}}; //sets 6th element of struct

这就是所谓的指定初始化器 http://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html在 C99 对其进行修改之前,它曾经是 GNU 扩展,并且自 C99 以来也受到标准 C 的支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 中的结构体数组初始化 的相关文章

随机推荐