尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

C语言-结构

C语言-结构
📅 发布时间:2026/7/25 21:03:13

结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量

访问结构体成员变量的时候用点.来调用

struct Stu{//struct Stu是一个结构类型,类似于int char name[20]; int age; char tele[20]; char sex[20]; }; int main(){ struct Stu s={"张三",20,"16273847436","男"};//就相当于int a; printf("%s,%d,%s,%s\n",s.name,s.age,s.tele,s.sex); //打印出,张三,20,16273847436,男 return 0; }

嵌套结构如下

struct birthy{ int year; int month; int day; }; struct Stu{ char name[20]; int age; char tele[20]; char sex[20]; struct birthy b; }; int main(){ struct Stu s={"张三",20,"16273847436","男",{2002,12,12}};//这里的s叫做局部变量 printf("%s,%d,%s,%s,%d年%d月%d日\n", s.name,s.age,s.tele,s.sex,s.b.year,s.b.month,s.b.day); //打印出,张三,20,16273847436,男,2002年12月12日 return 0; }

结构的重命名

不重命名的话每次创建变量时候都要struct Stu s1,struct Stu s2
重命名的话创建变量的时候就不用加struct,直接Stus s1,Stus s2

//对类型进行重命名,把Stu改成Stus typedef struct Stu{ …… }Stus; struct Stu{ …… }s1,s2,s3;//声明类型的同时定义变量s1,s2,s3 //这里的s1,s2,s3叫全局变量

如果要封装一个打印结构体的函数的话,选print2好一点,因为函数传参的时候,参数是需要压栈的,如果传递一个结构体对象的时候,结构体过于大,参数压栈的系统开销较大,所以会导致性能下降,总之,结构体传参的时候,要传结构体的地址好一点

struct Stu{ char name[20]; int age; char tele[20]; char sex[20]; }; void print1(struct Stu temp){ printf("%s %d %s %s\n",temp.name,temp.age,temp.tele,temp.sex); } void print2(struct Stu *temp){ printf("%s %d %s %s\n",(*temp).name,(*temp).age,(*temp).tele,(*temp).sex); //上边这一行就等于这一行printf("%s %d %s %s\n",temp->name, temp->age, temp->tele, temp->sex); } int main(){ struct Stu s={"张三",20,"16273847436","男"}; print1(s);//传结构体 print2(&s);//传地址 return 0; }

匿名结构体

struct {
char name[20];
int age;
char tele[20];
char sex[20];
}s;
这个叫匿名结构体变量,声明匿名结构体的时候必须在后边紧跟着创建结构体变量,例如s

结构体的内存对齐

struct S1{ char c1; int a; char c2; }; struct S2{ char c1; char c2; int a; }; int main(){ struct S1 s1={0}; struct S2 s2={0}; printf("%d\n",sizeof(s1));//12 printf("%d\n",sizeof(s2));//8 return 0; }

相关新闻

  • 实捶了,原来库洛茶实为三代茶农世家 - 资讯纵览
  • 深度学习中的嵌套结构:原理、问题与优化策略
  • OmniVideo-R1:音视频深度融合的跨模态AI理解系统

最新新闻

  • tinker-manager核心功能解析:让Android热修复效率提升300%
  • G-Helper终极指南:5步快速修复华硕笔记本色彩显示问题
  • 贵阳马桶 地漏洗菜池堵了怎么办 找那家公司靠谱专业 到底那家好。 - 园子一号
  • 多地沟改造工程钢格板评测:适配场景与品质解析 - 速递信息
  • Stellaris DLC Unlocker开发幕后:从CreamAPI到CreamLinux的技术演进
  • OpenAI API欧洲区域部署与开发实战指南

日新闻

  • 从国家条件到买方清单,深入理解 ABAP CDS 单值过滤器派生
  • 2026 年当下,齐齐哈尔专业的不锈钢闸门批发厂家哪个好,揭秘!这个工业“铁门”如何实现成本翻倍的效率提升? - 行业甄选官
  • 2026阳极氧化加工厂推荐:从设备规模看硬质氧化技术的成熟应用推荐百正机械 - 栗子测评

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号