资讯动态

[c语言基础]构造函数,结构体学习使用

发布时间:2026/8/8 8:16:54 来源:尧图企业网站定制
构造数据类型基本数据类型short int long char float void指针类型构造数据类型 节后提 共用体 枚举1.结构体int num / char ch / fioat f如果没有办法使用当前类型描述但是想描述学生这一类就要使用结构体进行首先学习如何声明结构体struct 名称{数据类型成员1成员1 成员2 ......//需要的基本数据类型也就是已经有的数据类型int double float .....}声明struct 名称 的一种结构体类型 是一种数据类型比如构造一个年月struct date{int yearint monint day}struct datetime{struct date mdate;struct time mtm;}struct datetime{truct date{int year;int mon;int day;}mdatestruct time{int hour;int min;int sec;}mtm;};1.结构体的嵌套struct datetime{int date}注意声明结构体时候结构体成员间用‘;’结构体之间‘’隔开struct 后面的名称可以省略省略后一个结构体2.结构体变量定义int numstruct nums定义一个s的变量结构体类型 名称struct num{int ageint sorceint hight} str定义的变量名称声明结构体类型的同时定义了一个变量变量的变量名mydate3.结构体的初始化全部初始化 strcut date mydat{2025,8.6}部分初始化 strcut time timetruct date mydate {//.year 2024,//.day 6,}}当我们在部分初始化进行定义的时候如果晒定义一个那么我们应该加一个点表示访问该元素4.结构数据成员的访问1.通过结构体变量访问结构体成员结构变量名. 成员1结构变量名.成员2表达式的结果取决于成员的数据类型mydateyear2.通过结构体指针访问结构体成员结构体指针-》成员1结构变量变量名.成员1表达式的结果取决成员的数据类型。5.结构体的储存模式结构体对齐原则1. 结构体成员在内存中存储时成员必须存储在自己字节大小的整数倍位置2. 结构体整体占的内存大小是结构体中最大成员字节数的整数倍。注意1. 在不同位系统下相同结构体在内存中占的字节空间可能不一样原因64位系统long/指针类型占8字节32位系统long/指针类型占4字节。2. 可以强制让结构体按指定字节数对齐。#pragma pack(1) //强制结构体按1字节对齐struct s{int a; //4char b; //1int c; //4};#pragma pack(6.结构体作为函数进行参数的传递如果再被调函数中修改结构体变量则传递结构变量的地址如果在函数中使用主调函数的结构体变量可以传递值也可以传递地址7. 结构体数组struct stu 数组名【元素个数】struct stu 数组名元素 【元素个数】{{}{}{}}数组名【下标】类型的华就是我们自定义的变量结构8.共用体/联合体1.语法union 名称{数据类型成员1数据类型成员2}1.共用体中所有成员公用一块空间始终以最大变量的sizeof占用内存2.共用体中字节数大小和内存大小端小端内存的高地址存储高字节位内存的地地址存储低字节位大端内存的搞地质存储低字节位内存的纸质存储的高字节位9.枚举enum 没就相当于是全局定义的一个宏每个里面都是整形常量对已经定义部分可以进行按需递增主要四要增强代码可读性1.枚举中都是整型常量不需要写数据类型2.枚举常量根据行业规范一般都是大写3.没居中枚举常量类似于整形符号常量可以直接被引用4.枚举中的常量用逗号隔开5.枚举中如果没有给定常量则默认从0开始如果某个常量给赋值后紧挨着后面的常量依次加一一枚举变量enum 名称 变量名 枚举变量是的枚举类型的整形typedef关键字为已有的 数据类型 进行 重命名typedef struct stu stu_s 重新命名

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价