📜  C中的结构数组(1)

📅  最后修改于: 2023-12-03 15:14:25.336000             🧑  作者: Mango

C中的结构数组

在C语言中,结构体是一种用户自定义的数据类型,用于组合不同类型的数据项。而结构数组则是由多个相同类型的结构体元素组成的数组。下面将介绍C中结构数组的概念以及如何使用它们。

定义结构数组

定义结构数组有两种方法:

方法一
struct student {
    char *name;
    int age;
};

struct student roster[5];

上面的代码定义了一个名为student的结构体,该结构体包含一个指向字符型的指针和一个整型变量。然后我们定义了一个由5个student结构体组成的数组,名为roster

方法二
struct student {
    char *name;
    int age;
} roster[5];

与方法一相比,方法二省略了结构体定义和变量定义,把两者结合起来。

访问结构数组的元素

访问结构数组的元素有两种方法:

方法一
struct student {
    char *name;
    int age;
};

struct student roster[5];
roster[0].name = "Bob";
roster[0].age = 20;

上面的代码定义了一个名为student的结构体,该结构体包含一个指向字符型的指针和一个整型变量。然后我们定义了一个由5个student结构体组成的数组,名为roster。最后我们设置了roster数组的第一个元素的name为"Bob",age为20。

方法二
struct student {
    char *name;
    int age;
} roster[5];

(roster+0)->name = "Bob";
(roster+0)->age = 20;

与方法一相比,方法二使用了指针运算符->,通过指向第一个元素的指针roster访问结构数组元素的内容。

遍历结构数组

可以使用循环遍历结构数组的元素。

struct student {
    char *name;
    int age;
} roster[5];

for (int i = 0; i < 5; i++) {
    printf("%s is %d years old.\n", roster[i].name, roster[i].age);
}

上面的代码定义了一个名为student的结构体,该结构体包含一个指向字符型的指针和一个整型变量。然后我们定义了一个由5个student结构体组成的数组,名为roster。最后我们使用循环遍历roster数组的元素,并打印每一个元素的nameage