C语言之结构体讲解

news2024/12/23 13:45:32
目录
结构体类型的声明
结构体初始化
结构体成员访问
结构体传参
对于上期指针初阶(2)我们后期还会讲数组指针是什么?大家可以先思考一下,后期我们会讲
1.结构体的声明
结构是一些值的集合,这些值被称为成员变量,结构的每个成员可以是不同类型的变量
数组是一组相同元素的集合
结构体其实是一组不一定相同类型元素的集合
在我们生活中
人:名字+性别+年龄+身高+身份证号码+地址.......
书:书名+作责+出版社+定价+书号......
复杂对象,不能通过内置类型直接描述和表示,就有结构体来描述复杂类型

看下图,我们应该怎么理解结构体呢??? 

左半边是结构体类型,右半边是结构体变量
结构体就相当于是相当于盖房子的图纸,拿着图纸照着图纸盖好一个房子,这个盖好的房子就能装东西了,图纸上是不能装东西的,右边的变量就向内存申请空间,有了类型我们就可以初始化了,根据结构体类型来初始化

这里的s2,s3,s4就是结构体变量,并且是全局变量,看下图

这里的typedef的意思是类型重命名,对struct Stu重命名为Stu,那也就是struct Stu s1 == Stu s1,在C语言中,没有对结构体类型typedef,struct关键字不能省略,希望大家能够多加注意

看代码

结构体里面可以包含另一个结构体变量,这里就强调这一个重点 结构体创建的方法,s1是全局变量,struct Stu s2也是一个全局变量(这个可能较难理解),也可以在,main函数里面创建局部变量s3

一个指针是8个16进制位,1个16进制位4个2进制位,也就是32个二进制位

对于struct B这个结构体类型则需按照以下的写法,然后.结构体成员访问操作符将你想要的数据一个一个打印出来

%.2lf是小数点后面保留两位的意思字符数组传值传的是数组首元素的地址,所以需用指针,但是为什么只打印了一个0呢

函数传参想改变值就需要传地址,利用指针改变值的大小,我蛮来看效果,看下面代码以及运行结果

但是这个代码稍显麻烦,这是有一个---->操作符,这样看起来更爽朗,更更加清晰,—>在操作符详解那一章已经给大家提及过了

本章终!

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/643223.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

swagger解析

1.引用swagger包&#xff1a; !-- swagger --> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version> </dependency> <dependency><groupId>io…

【Android -- JNI 和 NDK】Java 和 C/C++ 之间传递参数和返回值

本文主要介绍 JNI 的数据传递上&#xff0c;即 Java 如何传递对象给 C; 而 C 又如何将数据封装成 Java 所需的对象。 1. 基本数据类型 传递 java 的基本类型是非常简单而直接的&#xff0c;一个 jxxx 之类的类型已经定义在本地系统中了&#xff0c;比如&#xff1a;jint, jby…

RHCE shell 作业一

1. 设置邮箱 [rootserver ~]# yum install s-nail -y [rootserver ~]# vim /etc/s-nail.rc 编写脚本 [rootserver ~]# vim homework1.sh 设置定时任务 [rootserver ~]# vim /etc/crontab 2. [rootserver ~]# vim homework2.sh 测试&#xff1a; 3. [rootserve…

Maven配置多个镜像源 SpringBoot配置多个镜像源

Maven配置多个镜像源 SpringBoot配置多个镜像源 当在 Maven 中配置多个镜像源&#xff0c;并在 Spring Boot 项目中配置多个镜像源时&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. Maven 中配置多个镜像源 在 Maven 的 settings.xml 文件中&#xff0c;按照以下示例配…

背单词学英语20年经验总结

推荐一款最近开发的单词小程序&#xff1a; 悟道单词&#xff0c;融入了卡片记忆&#xff0c;图像记忆等&#xff0c;融入了我20年背单词经验。 从这个小程序里我悟出了两大记忆原则 两个记忆原则&#xff1a; 1. 图像是文字之本法则 想一想我们原来是怎么记住中文字词的&#…

【文生图系列】基础篇-马尔可夫链

文章目录 马尔可夫链转移矩阵例子 应用实例参考 在阅读论文Denoising Diffusion Probabilistic Models时&#xff0c;发现论文里面介绍扩散概率模型&#xff08;diffusion probabilistic model&#xff09;是一个参数化的马尔科夫链&#xff08;parameterized Markov chain&…

List数组高效率去重

List数组高效率去重 一、环境准备–生成包含重复元素的list数组 /*** 生成包含重复元素的list数组* return*/ private static List<String> getList(){List<String> list new ArrayList<>();for (int i 1; i < 10000; i) {list.add(String.valueOf(i)…

Kendo UI for jQuery---03.组件___网格---02.开始

网格入门 本指南演示了如何启动和运行 Kendo UI for jQuery Grid。 完成本指南后&#xff0c;您将能够实现以下最终结果&#xff1a; 1. 创建一个空的 div 元素 首先&#xff0c;在页面上创建一个空元素&#xff0c;该元素将用作 Grid 组件的主容器。 <div id"my-…

SpringMVC组件原理剖析

文章目录 SpringMVC组件原理剖析一、 前端控制器初始化1.1 初始化SpringMVC容器1.2 注册了 SpringMVC的 九大组件1.3 处理器映射器初始化细节 二、前端控制器执行主流程2.1 定位doDispatcher方法2.2 验证HandlerExecutionChain2.3 HandlerAdapter执行目标方法 SpringMVC组件原理…

64位和32位相比优势是什么(一)

前置知识&#xff1a;程序是如何执行的&#xff1f; 一道常规的面试题&#xff1a;相比 32 位&#xff0c;64 位的优势是什么&#xff1f; 面试官考察这种类型的问题&#xff0c;主要是想看求职者是否有扎实的计算机基础&#xff0c;同时想知道求职者在工作中是否充满好奇&am…

路径规划算法:基于未来搜索优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于未来搜索优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于未来搜索优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

【硬件专题】案例:怎么通过元件丝印信息反查芯片

今天同事和昨天因为工作上的原因,问我一个问题,就是怎么通过丝印(Marking code)知道用的是什么芯片。以下列举几个方法: 凭经验 比如昨天给出的一张图片,看图片是比较模糊的。但是根据之前的使用,看芯片LOGO很明显是ST的,然后看上面的型号是STM**F1*VCT*,那么…

Go语言环境安装和程序结构

Go语言环境安装和程序结构 1、Go环境安装 Go安装包下载地址为&#xff1a; https://golang.org/dl/ https://golang.google.cn/dl/ 1.1 Windows下的安装 Windows 下可以使用.msi 后缀的安装包来安装&#xff0c;我这里下载的安装包是 go1.18.4.windows-amd64.msi&#xf…

C\C++ Thread-

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan 简介 说明 时间 c语言的时间处理&#xff1a;time.h 获取从1970年1月1日到当前经过的秒数: long t0 time(NULL); 让程序暂停3秒&#xff1a; sleep(3); 当前时间的3秒后&#x…

Pycharm 通过 SVN 直接管理控制代码,原来这么方便又高级!

做自动化测试的小伙伴都知道&#xff0c;代码不会只放到本地管理&#xff0c;需要托管到远端进行管理&#xff01; 一方面&#xff0c;发布在不同的电脑上进行同步开发&#xff0c;不需要用U盘拷来拷去&#xff1b;另外一方面&#xff0c;可以轻松找回代码&#xff0c;避免本地…

【UE】玻璃材质

效果 步骤 1. 新建一个材质&#xff0c;这里命名为“M_GLASS” 双击打开“M_GLASS”&#xff0c;左下角混合模式设置为半透明 光照模式设置为表面前向着色 将基础颜色提升为参数 同样还需提升为参数的有“高光度”、“粗糙度”、“不透明度”、“折射” 设置高光度的默认值和最…

【软件测试面试】几句话让面试官再掏3K,轻松应对测试面试...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 面试官&#xff1…

查看网卡中断在哪个CPU核处理

本文目录 1、查看CPU占用率2、查看系统的中断处理在各个CPU核间的分布情况3、查看用于处理网卡中断的CPU核4、修改用于处理网卡中断的CPU核 在默认的情况下Linux默认一个网卡的中断操作都在一个CPU核里处理&#xff0c;在大数据量或者说是对网卡的收发包性能PPS进行测试时&…

2023-06-13:统计高并发网站每个网页每天的 UV 数据,结合Redis你会如何实现?

2023-06-13&#xff1a;统计高并发网站每个网页每天的 UV 数据&#xff0c;结合Redis你会如何实现&#xff1f; 答案2023-06-13&#xff1a; 选用方案&#xff1a;HyperLogLog 如果统计 PV &#xff08;页面浏览量&#xff09;那非常好办&#xff0c;可以考虑为每个网页创建…

像医生一样的大规模AI模型

目录 华佗&#xff1a;BenTsao相关工作华佗模型实验 HuatuoGPT动机解决方案混合数据的SFT基于AI反馈的RL 医学中的LLM指令微调 华佗&#xff1a;BenTsao 大型语言模型&#xff08;LLM&#xff09;&#xff0c;如LLaMA模型&#xff0c;已经证明了它们在各种通用领域自然语言处理…