资讯动态

学习C语言之 构造数据类型 专题一:结构体

发布时间:2026/8/8 7:17:59 来源:尧图企业网站定制
构造数据类型基本数据类型short、int、long、char、float、double、void指针类型构造数据类型结构体、共用体、枚举1. 结构体1. 结构体的声明struct 名称{数据类型 成员1数据类型 成员2}声明“struct 名称”的结构体类型是一种数据类型例struct date{int year;int mon;int day;}struct time{int hour;int min;int sec;};注意声明结构体的时候结构体{}后面的“”不能省。结构体成员之间用“”隔开。struct后面的“ 名称”可以省略省略后就是一个匿名结构体2. 结构体变量定义int num;结构体类型 变量名struct date mydate;struct{int year;int mon;int day;}mydate声明结构体类型的同时定义了一个变量变量的变量名mydate3.结构体初始化1.全部初始化struct date mydate {2026 86};struct datetime{struct date mdate;struct time mtm;}struct datetime mydt {{2026,8,6}, {14,5,23}};2.部分初始化struct date mydate {.year 2024,.day 6,}4. 结构体数据成员的访问通过结构体变量访问结构体成员结构变量变量名.成员1结构变量变量名.成员2结构变量变量名.成员3结构变量变量名.成员1表达式的结果取决成员的数据类型。mydate.yearmydate.mon;mydate.day通过结构体指针访问结构体成员结构体指针-成员1结构体指针-成员2结构体指针-成员3结构变量变量名.成员1表达式的结果取决成员的数据类5. 结构体的存储方式结构体对齐原则1.结构体成员在内存中存储时成员必须存储在自己字节大小的整数倍位置2. 结构体整体占的内存大小是结构体中最大成员字节数的整数倍例struct s1{short a;int b;char c;};该结构体占了12个注意在不同位系统下相同结构体在内存中占的字节空间可能不一样原因64位系统long/指针类型占8字节32位系统long/指针类型占4字节。2.可以强制让结构体按指定字节数对齐#pragma pack(1) //强制结构体按1字节对齐struct s{int a; //4char b; //1int c; //4};#pragma pack() //取消强制结构体按1字节对齐6. 结构体做为函数参数传递如果要在被调函数中修改主调函数中的结构体变量则传递结构体变量的地址如果在被调函数中使用主调函数中定义的结构体变量可以值传递也可以传地址7. 结构体数组struct 名称 数组名[元素个数]struct 名称 数组名[元素个数] {{} {} {}}数组名[下标]; —》数据类型”struct 名称“ 类型

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

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

免费获取报价