C语言实战之结构体应用

C语言实战之结构体应用

编码文章call10242025-04-10 20:58:4610A+A-

下面是一个C语言结构体的实战代码示例,展示了如何定义结构体、初始化结构体、访问结构体成员以及结构体数组的使用。

示例代码:结构体实战

#include 
#include 

// 定义一个结构体表示学生信息
struct Student {
    int id;
    char name[50];
    float score;
};

// 函数:打印学生信息
void printStudent(struct Student s) {
    printf("Student ID: %d\n", s.id);
    printf("Student Name: %s\n", s.name);
    printf("Student Score: %.2f\n", s.score);
    printf("\n");
}

int main() {
    // 初始化一个结构体变量
    struct Student student1;
    student1.id = 1;
    strcpy(student1.name, "Alice");
    student1.score = 95.5;

    // 打印学生信息
    printf("Student 1:\n");
    printStudent(student1);

    // 使用结构体数组
    struct Student students[3];

    // 初始化结构体数组
    students[0].id = 2;
    strcpy(students[0].name, "Bob");
    students[0].score = 88.0;

    students[1].id = 3;
    strcpy(students[1].name, "Charlie");
    students[1].score = 92.5;

    students[2].id = 4;
    strcpy(students[2].name, "David");
    students[2].score = 76.5;

    // 打印结构体数组中的学生信息
    printf("Students in the array:\n");
    for (int i = 0; i < 3 i printstudentstudentsi struct student ptrstudent ptrstudent='&student1;' printfaccessing student1 through pointer:\n printfstudent id: d\n ptrstudent->id);
    printf("Student Name: %s\n", ptrStudent->name);
    printf("Student Score: %.2f\n", ptrStudent->score);

    return 0;
}

代码说明:

  1. 结构体定义

使用 struct 关键字定义了一个名为 Student 的结构体,包含三个成员:id(学号)、name(姓名)和 score(分数)。

  1. 结构体初始化
  • 通过 . 运算符访问结构体成员并赋值。
  • 示例:student1.id = 1; 和 strcpy(student1.name, "Alice");
  1. 结构体数组
  • 定义了一个包含3个 Student 结构体的数组 students。
  • 通过数组下标访问每个结构体并初始化。
  1. 结构体指针
  • 定义了一个指向 Student 结构体的指针 ptrStudent。
  • 使用 -> 运算符通过指针访问结构体成员。
  • 示例:ptrStudent->id 等价于 (*ptrStudent).id。
  1. 函数传递结构体
  • 将结构体作为参数传递给函数 printStudent,并在函数中打印结构体的内容。

输出示例:

Student 1:
Student ID: 1
Student Name: Alice
Student Score: 95.50

Students in the array:
Student ID: 2
Student Name: Bob
Student Score: 88.00

Student ID: 3
Student Name: Charlie
Student Score: 92.50

Student ID: 4
Student Name: David
Student Score: 76.50

Accessing student1 through pointer:
Student ID: 1
Student Name: Alice
Student Score: 95.50

扩展:嵌套结构体

结构体可以嵌套使用,例如:

#include 

struct Date {
    int day;
    int month;
    int year;
};

struct Employee {
    int id;
    char name[50];
    struct Date joinDate;
};

int main() {
    struct Employee emp1 = {1, "John", {15, 8, 2020}};

    printf("Employee ID: %d\n", emp1.id);
    printf("Employee Name: %s\n", emp1.name);
    printf("Join Date: %02d/%02d/%04d\n", emp1.joinDate.day, emp1.joinDate.month, emp1.joinDate.year);

    return 0;
}

输出

Employee ID: 1
Employee Name: John
Join Date: 15/08/2020

总结:

  • 结构体是C语言中组织复杂数据的强大工具。
  • 可以通过 . 运算符访问结构体成员,通过 -> 运算符通过指针访问成员。
  • 结构体可以嵌套,也可以作为函数参数传递。
  • 结构体数组和指针的使用使得处理大量数据更加方便。

通过这个示例,你可以掌握结构体的基本用法,并能够灵活应用到实际编程中。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4