当前位置: 首页 > news >正文

C:结构体(struct)

  • 结构体(struct)是一种由一组成员组成的类型,这些成员的存储空间按顺序依次分配(这与共用体(union)不同,共用体的成员存储空间是相互重叠的)。

例如定义一个结构体:

structPerson{charname[50];intage;};
  • 使用结构体
#include<stdio.h>structPerson{charname[50];intage;};intmain(){structPersons;s.age=28;strcpy(s.name,"Hugo Pang");printf("%d\n",s.age);printf("%s\n",s.name);return0;}

运行输出:

  • 在结构体对象中,成员(以及位域分配单元)的地址按定义顺序递增。

例如:

#include<stdio.h>structPerson{intage;charname[10];};intmain(){structPersons;s.age=28;strcpy(s.name,"Hugo");//查看地址printf("&s.age = %p\n",&s.age);printf("&s.name = %p\n",&s.name);return0;}

输出如下:

  • 指向结构体的指针可以转换为指向其第一个成员的指针(如果成员是位域,则转换为其分配单元的指针);指向结构体第一个成员的指针也可以转换回指向整个结构体的指针。

例如,代码如下:

#include<stdio.h>structPerson{intage;charname[10];};intmain(){structPersons;s.age=28;strcpy(s.name,"Hugo");//指向结构体的指针和指向其第一个成员的指针相同printf("&s = %p\n",&s);printf("&s.age = %p\n",&s.age);return0;}

运行输出:

http://www.cnnetsun.cn/news/2117627.html

相关文章:

  • 基于多模态AI与本地优先架构的考公错题管理助手设计与实现
  • Linux 用户有7个级别,你看看你属于哪个级别?
  • Python的__getattribute__框架中
  • 别再死记硬背了!用Docker Compose 5分钟搭建Redis哨兵集群,实战理解Raft选举
  • 全面掌握ezdxf:Python处理DXF文件的终极指南
  • 多模态换流变压器有载分接开关故障识别研究【附源码】
  • PvZWidescreen:让植物大战僵尸完美适配现代宽屏显示器的终极解决方案
  • Go语言可编程代理工具ODE:从核心原理到开发实践
  • 设计模式-工厂方法描述
  • 图像配准:多分辨率 ORB + RANSAC 优化
  • 生成式视觉推理:AI从描述到模拟的突破
  • 从质谱数据到科学发现:MZmine 3开源平台的实战指南
  • LLM在软件工程中的应用与挑战
  • 总线与寄存器实验
  • 3步构建企业级Web应用:深入解析ASP.NET Core MVC核心架构
  • 3个步骤,让手机游戏在电脑上玩出PC级体验!QtScrcpy Android投屏完全指南
  • Windows电脑直接运行安卓应用的完整指南:APK安装器使用教程
  • 服务器还没挂你就知道?时间序列才是运维真正的“预知能力”
  • 2026年值得关注的AI大模型接口聚合站推荐:五大优质平台适配不同企业与开发者需求
  • 全球与中国PE离型膜市场:现状剖析与未来趋势前瞻
  • ESP8266项目功耗太高?手把手教你用INA226模块精准测量并优化(从接线到数据分析)
  • 基于开源大模型构建自动化智能体:Open-AutoGLM-SIGI核心解析与实践
  • 终极教程:5分钟让Anki卡片开口说话!AwesomeTTS插件完整指南 [特殊字符]
  • 3步搞定B站缓存视频合并:安卓手机离线观看完整视频带弹幕
  • 系统性思维:从修bug到防bug的认知升级
  • 5个高效技巧:如何快速掌握GDSDecomp逆向工程工具的核心功能?
  • Python函数参数的封包与拆包
  • 揭秘RyzenAdj:解锁AMD移动处理器性能与功耗平衡的三大突破
  • 亿量级裁判文书数据库1985-2021年
  • 【建议收藏】2026年大模型终极风口:AI Agent爆发,程序员/小白入门必看(吃透少走3年弯路)