C语言结构体 #

一、结构体概述 #

1.1 什么是结构体 #

结构体是用户自定义的复合数据类型,可以包含不同类型的成员。

1.2 定义语法 #

c
struct 结构体名 {
    类型 成员1;
    类型 成员2;
};

二、结构体定义与初始化 #

2.1 定义结构体 #

c
struct Student {
    char name[20];
    int age;
    float score;
};

2.2 声明变量 #

c
struct Student stu1;
struct Student stu2 = {"Alice", 20, 85.5};

2.3 typedef简化 #

c
typedef struct {
    char name[20];
    int age;
} Student;

Student stu = {"Bob", 21};

三、访问成员 #

3.1 点运算符 #

c
#include <stdio.h>
#include <string.h>

typedef struct {
    char name[20];
    int age;
} Student;

int main() {
    Student stu;
    strcpy(stu.name, "Alice");
    stu.age = 20;
    
    printf("姓名: %s\n", stu.name);
    printf("年龄: %d\n", stu.age);
    return 0;
}

3.2 箭头运算符 #

c
#include <stdio.h>

typedef struct {
    char name[20];
    int age;
} Student;

int main() {
    Student stu = {"Alice", 20};
    Student* p = &stu;
    
    printf("姓名: %s\n", p->name);
    printf("年龄: %d\n", p->age);
    return 0;
}

四、嵌套结构体 #

c
#include <stdio.h>

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

typedef struct {
    char name[20];
    Date birthday;
} Person;

int main() {
    Person p = {"Alice", {2000, 5, 15}};
    printf("生日: %d-%d-%d\n", p.birthday.year, p.birthday.month, p.birthday.day);
    return 0;
}

五、总结 #

操作 语法
定义 struct Name {…};
访问 变量.成员 或 指针->成员
初始化

下一步,让我们学习结构体数组!

最后更新:2026-03-26