登录/注册

c语言struct

更多

在 C 语言中,struct(结构体) 是一种用户自定义的复合数据类型,用于将多个不同类型的变量组合成一个逻辑单元。以下是关键知识点和使用方法(中文详解):


1. 定义结构体

// 语法:struct 标签名 { 成员列表 };
struct Student { 
    int id;          // 学号 (整型)
    char name[20];   // 姓名 (字符数组)
    float score;     // 成绩 (浮点型)
};

2. 声明结构体变量

// 方式1:先定义结构体,再声明变量
struct Student stu1; 

// 方式2:定义结构体时直接声明变量
struct Point {
    int x;
    int y;
} p1, p2; // p1 和 p2 是全局变量

3. 初始化结构体

// 初始化所有成员(按顺序)
struct Student stu2 = {101, "张三", 85.5};

// 初始化部分成员(C99+)
struct Student stu3 = {.id = 102, .name = "李四"}; // score 默认为 0

4. 访问结构体成员

使用 . 运算符

stu1.id = 100;
strcpy(stu1.name, "王五"); // 字符串赋值用 strcpy
stu1.score = 92.5;

printf("学号: %d\n", stu1.id);

5. 结构体指针

使用 -> 运算符

struct Student *ptr = &stu1;
ptr->score = 95.0;  // 等价于 (*ptr).score

printf("姓名: %s\n", ptr->name);

6. typedef 简化

typedef 创建别名,避免重复写 struct

typedef struct Student {
    int id;
    char name[20];
} Student; // 别名

Student stu4; // 直接使用别名声明变量

7. 结构体嵌套

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

struct Employee {
    int id;
    struct Date birthday; // 嵌套结构体
};

struct Employee emp = {1, {1990, 5, 20}};
printf("出生年份: %d\n", emp.birthday.year);

8. 结构体大小与内存对齐


9. 结构体作为函数参数


10. 结构体数组

struct Student class[3] = {
    {101, "Alice", 88.5},
    {102, "Bob", 76.0},
    {103, "Charlie", 92.3}
};

printf("%s的成绩: %.1f\n", class[1].name, class[1].score); // Bob:76.0

应用场景

重要提示:结构体成员默认 公有(C 无访问控制),设计时需注意数据封装性。

typedef和struct有啥区别

在C语言中, typedef 和 struct 是两个非常重要的关键字,它们在定义数据结构时扮演着关键的角色。然而,它们之间有一些明显的区别。

2024-08-20 11:00:44

typedef struct和直接struct的区别

在C语言中, typedef 和 struct 是两种不同的关键字,它们在定义和使用上有着明显的区别。 typedef

2024-08-20 10:58:37

嵌入式中C语言结构体基本实现

C语言中的数组只能允许程序员定义存储相同类型数据。但是结构是C语言编程中

2024-05-11 08:49:50

《PIC单片机C语言》pdf

《PIC单片机C语言》pdf

资料下载 ah此生不换 2021-11-29 16:54:18

嵌入式软件之c语言编码规范

嵌入式软件之c语言编码规范

资料下载 www2021 2021-10-28 18:13:32

DSP载波移相控制C语言源代码下载

DSP载波移相控制C语言源代码下载

资料下载 口沫横 2021-05-12 09:19:18

MATLAB语言C语言的区别资料下载

电子发烧友网为你提供MATLAB语言与C语言的区别资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、

资料下载 131594 2021-04-01 08:40:10

什么是C语言C语言有哪些优势及C语言的应用资料说明

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编

资料下载 佚名 2019-05-29 17:56:00

全面讲解C语言的结构体(struct)

结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。

2023-06-05 14:33:58

详细分析C语言中结构体(struct)的使用

结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。

2023-05-04 10:21:39

C++中struct和class的区别?

C++中struct和class的区别是什么?C++中struct和cl

2023-03-10 17:41:32

SystemVerilog中的struct

SystemVerilog“struct”表示相同或不同数据类型的集合。

2022-11-07 10:18:20

C语言中的struct结构体与union共用体

struct即结构体,C程序中经常需要用相关的不同类型的数据来描述一个数据对象。例如,描述学生的综合信息时,需要使用学生的学号、姓名、性别等不同类型的数据时,像这种数据类型总是在一起出现,那么我们

2022-10-13 10:44:04

C语言struct的用法有哪些

定义结构体变量       下面举一个例子来说明怎样定义结构体变量。                   struct   string    {       char  name[ 8

2021-09-15 09:41:00

为什么C语言函数不能返回数组?

可以返回结构体 上面代码其实就是不能在C语言函数中返回数组。但是如果将数组定义在结构体里面,就可以将其返回了,例如下面这段C

2021-03-29 11:18:12

7天热门专题 换一换
相关标签