6.3 结构数组

Arrays of Structures as a simple database

结构

struct Student {
    char name[50];
    int age;
    float marks;
};

结构数组

struct Student students[100];
6.3.1 array-struct.c
#include <stdio.h>

// 定义学生结构体
struct Student {
    char * name;
    int age;
    float marks;
};
/* 
  ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ char * name 为什么 name变量不会重复定义?                                                                                   │
  │ 当你创建一个 struct Student 类型的变量时,每个变量都会有自己的 name 成员。                                                                │
  │ 这些 name 成员是独立的,它们可以指向不同的字符串,所以不会出现重复定义的问题。                                                                      │
  └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 */
int main() {
    // 定义包含100个学生的结构数组
    struct Student students[100];
    
    // 对第一个学生的信息进行赋值
    students[0].name = "Alice";
    students[0].age = 20;
    students[0].marks = 85.5;

    
    // 对第二个学生的信息进行赋值
    students[1].name = "Bob";
    students[1].age = 22;
    students[1].marks = 78.2;

    // 打印第一个学生的信息
    printf("Student 1:\n");
    printf("Name: %s\n", students[0].name);
    printf("Age: %d\n", students[0].age);
    printf("Marks: %.2f\n", students[0].marks);

    // 打印第二个学生的信息
    printf("\nStudent 2:\n");
    printf("Name: %s\n", students[1].name);
    printf("Age: %d\n", students[1].age);
    printf("Marks: %.2f\n", students[1].marks);

    return 0;
}

/* 
  ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ 输出:                                                                                                             │
  │                                                                                                                 │
  │ Student 1:
  | Name: Alice
  | Age: 20
  | Marks: 85.50
  | 
  | Student 2:
  | Name: Bob
  | Age: 22
  | Marks: 78.20
  | 
  |                                                                                                     │
  └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 */ 

使用 strcpy()函数和结构数组进行 demo:

Last updated

Was this helpful?