C语言结构体详解及示例

在C语言中,结构体(structure)是一种自定义的复合数据类型,用于存储不同类型的数据项。通过结构体,可以将多个相关的变量组合在一起,形成一个逻辑上的整体,方便数据的组织和管理。

1. 定义结构体

使用 struct 关键字定义结构体,并指定结构体的名称和成员变量。c#include <stdio.h>

// 定义结构体struct Person { char name[50]; int age; float height;};

int main() { // 声明结构体变量 struct Person person1;

// 访问结构体成员变量    strcpy(person1.name, 'John');    person1.age = 30;    person1.height = 1.75;

// 打印结构体成员变量    printf('Name: %s

', person1.name); printf('Age: %d ', person1.age); printf('Height: %.2f ', person1.height);

return 0;}

输出:

Name: JohnAge: 30Height: 1.75

2. 结构体嵌套

结构体中可以嵌套其他结构体,形成更复杂的数据结构,例如日期结构体嵌套在学生信息结构体中。c#include <stdio.h>

// 定义日期结构体struct Date { int day; int month; int year;};

// 定义学生信息结构体struct Student { char name[50]; struct Date birthdate; int rollNo;};

int main() { // 声明结构体变量 struct Student student1;

// 访问结构体成员变量    strcpy(student1.name, 'Alice');    student1.birthdate.day = 10;    student1.birthdate.month = 5;    student1.birthdate.year = 2000;    student1.rollNo = 1;

// 打印结构体成员变量    printf('Name: %s

', student1.name); printf('Birthdate: %d/%d/%d ', student1.birthdate.day, student1.birthdate.month, student1.birthdate.year); printf('Roll No: %d ', student1.rollNo);

return 0;}

输出:

Name: AliceBirthdate: 10/5/2000Roll No: 1

3. 结构体数组

可以创建结构体数组来存储多个具有相同结构的数据,例如存储多个点的坐标。c#include <stdio.h>

// 定义点结构体struct Point { int x; int y;};

int main() { // 声明结构体数组 struct Point points[3];

// 初始化结构体数组    points[0].x = 1;    points[0].y = 2;    points[1].x = 3;    points[1].y = 4;    points[2].x = 5;    points[2].y = 6;

// 打印结构体数组    for (int i = 0; i < 3; i++) {        printf('Point %d: (%d, %d)

', i+1, points[i].x, points[i].y); }

return 0;}

输出:

Point 1: (1, 2)Point 2: (3, 4)Point 3: (5, 6)

总结

结构体是C语言中一个强大的特性,它允许我们组织和操作多个相关的数据项。使用结构体可以创建更复杂的数据结构,例如记录、图形、链表等。结构体还可以作为函数参数传递,以便在函数之间传递多个相关的值,使程序更加灵活和高效。

C语言结构体详解及示例

原文地址: https://www.cveoy.top/t/topic/RRl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录