C语言 - 结构体、结构体数组、结构体指针和结构体嵌套

本文详细介绍了C语言中的结构体,包括结构体的意义、定义与使用,结构体数组的创建与维护,通过结构体指针访问成员,结构体的嵌套结构,以及结构体大小和字节对齐的概念。通过实例展示了如何计算结构体的大小,并解释了字节对齐对于性能和平台移植的重要性。
摘要由CSDN通过智能技术生成

结构体的意义

问题:学籍管理需要每个学生的下列数据:学号、姓名、性别、年龄、分数,请用 C 语言程序存储并处理一组学生的学籍。
单个学生学籍的数据结构:

  • 学号(num): int 型
  • 姓名(name) :char [ ] 型
  • 性别(sex):char 型
  • 年龄(age):int 型
  • 分数(score):float 型
    思考:如果有多个学生,该怎么定义,已学数据类型无法解决(已学的数据类型需要定义好多变量,不友好)。

概述

  • 正式:
    结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据被称为结构型数据的 “成员” ,其描述了一块内存区间的大小及解释意义。
  • 通俗:
    结构体属于用户自定义的数据类型,允许用户存储不同的数据类型。

在C语言中,定义结构体的语法格式如下:

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

其中,结构体名是您自定义的结构体类型名称,可以根据需求进行命名。成员1成员2等表示结构体的成员变量,每个成员都有自己的类型和名称。

定义结构体后,可以使用该结构体类型创建结构体变量,并访问结构体的成员。访问结构体成员的语法是使用结构体变量名后跟成员名,中间使用点.进行连接。

结构体的使用

  • struct 结构体名 变量名

  • struct 结构体名 变量名 = {成员1值,成员2值…}

  • 定义结构体时顺便创建变量(这时候创建几个变量都可以,中间用逗号隔开,直接在创建的时候赋值也可以,例如:)

    struct student
    {
         
      int num; //学号
      char name[16];  //姓名
      float score;  //成绩
    }stu5 = {
         1002,"lihua",89},stu6;
    
  • 如果只想给一部分数据赋值的话:

    struct 结构体名 变量名 = {
         
    .name = "cuiyi",
    .num = 111,
    };
    

下面是一个更完整的示例:

#include <stdio.h>

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

int main() {
   
    // 创建一个结构体变量
    struct Person person1;

    // 访问结构体的成员
    strcpy(person1.name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值