C语言-结构体(7)

news2024/11/27 2:39:17

目录

思维导图:

1. 结构体的声明

1.1 结构的基础知识

1.2 结构的声明

1.3 结构成员的类型

1.4 结构体变量的定义和初始化

2. 结构体成员的访问

3. 结构体传参

写在最后:


思维导图:

1. 结构体的声明

1.1 结构的基础知识

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

1.2 结构成员的类型

结构的成员可以是标量、数组、指针,甚至是其他结构体。

1.3 结构体变量的声明、定义和初始化

例1:

#include <stdio.h>

struct Book
{
	char name[100];
	int page;
	float price;
}s4, s5;//全局变量

int main()
{
	struct Book s1, s2, s3;//结构体的局部变量
	return 0;
}

2. 结构体成员的访问

例:


#include <stdio.h>

struct Book
{
	char name[100];
	int page;
	float price;
};

int main()
{
	struct Book s1 = { "C语言程序设计",500,66.66f };//结构体变量的创建和初始化
	printf("《%s》 %d页 %f元\n", s1.name, s1.page, s1.price);
		          //打印方法:结构体变量.成员变量
	struct Book* p = &s1;
	printf("《%s》 %d页 %f元\n", (*p).name, (*p).page, (*p).price);//不推荐使用
	printf("《%s》 %d页 %f元\n", p->name, p->page, p->price);
								//结构体指针->成员变量名
	return 0;
}

输出结果:

输出:
《C语言程序设计》 500页 66.660004元
《C语言程序设计》 500页 66.660004元
《C语言程序设计》 500页 66.660004元

3. 结构体传参

例:

#include <stdio.h>

struct Book
{
	char name[20];
	int page;
	double price;
};

void Print(struct Book s1)
{
	printf("《%s》 %d页 %f元\n", s1.name, s1.page, s1.price);
}

void Print2(struct Book* p)
{
	printf("《%s》 %d页 %f元\n", p->name, p->page, p->price);
}

int main()
{
	struct Book p = { "C语言程序设计",500,66.6 };
	Print(p);//传值调用
	Print2(&p);//传址调用
	return 0;
}

输出结果:

《C语言程序设计》 500页 66.600000元
《C语言程序设计》 500页 66.600000元

一般都使用传址调用。

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

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

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

相关文章

python一键去PDF水印,只需十行代码,超级简单...

用python制作去除 pdf 文件水印脚本前因后果去除水印原理代码剖析1、先查看PDF文档中的水印rgb值是多少2、pdf转换成图片&#xff0c;并去除水印3、图片转为pdf代码整合总结前因后果 弟弟最近要考试&#xff0c;临时抱佛脚在网上找了一堆学习资料复习&#xff0c;这不刚就来找…

机器学习-sklearn-高斯混合模型-学习笔记

文章目录前言一、如何估计参数二、二分类原生代码实现三、sklearn实现模型总结前言 学习笔记 学习视频&#xff1a;https://www.bilibili.com/video/BV1rB4y1v7dA/?spm_id_from333.788&vd_sourceaf83080eba7b379d3fda36e341bdb195 使用高斯混合模型的原因&#xff1a; 模…

03137计算机网络原 - 物理层

物理层 基础概念 OSI模型最底层 功能 为在链路实体间传送比特流而对物理连接的 接通 维持 和 拆除 提供机械,电气,功能和规程方面的方法作用 尽可能屏蔽现有多种多样的硬件设备,传输媒体和通信手段的差异。确保原始数据可以在各种物理媒介上传输任务特性 机械特性 指明接…

Linux环境变量与程序地址空间

Linux环境变量与程序地址空间 文章目录Linux环境变量与程序地址空间1.环境变量1.1 环境变量概念与深入理解1.2 代码获取环境变量的方法1.3 系统调用获取和设置环境变量的方法2.程序地址空间2.1 程序地址空间图(准确来说是进程地址空间图)2.2 程序地址空间的验证2.3 进程地址空间…

概率论中的几个重要悖论问题

1. 蒙提霍尔问题&#xff08;三门问题&#xff09; 三门问题&#xff08;Monty Hall problem&#xff09;亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论&#xff0c;大致出自美国的电视游戏节目Lets Make a Deal。问题名字来自该节目的主持人蒙提霍尔&#xff08;Monty Hall&…

【笑小枫的SpringBoot系列】【十八】SpringBoot中的Properties配置

本文简介&#x1f3a8; 随着我们的演示功能越来越多&#xff0c;里面的配置也越来越多&#xff0c;我们怎么更好的来管理这些配置呢&#xff1f; 实际项目中&#xff0c;我们肯定会有开发环境、测试环境、生产环境&#xff0c;我们又该怎么便捷的配置这些环境呢&#xff1f; …

CANopen之SDO,PDO

一、简述 CAN 总线是一种串行通信协议&#xff0c;具有较高的通信速率的和较强的抗干扰能力&#xff0c;可以作为现场总线应用于电磁噪声较大的场合。由于 CAN 总线本身只定义ISO/OSI 模型中的第一层&#xff08;物理层&#xff09;和第二层&#xff08;数据链路层&#xff09…

nodejs+mysql网上书店图书销售购物商城系统vue

系统功能 此系统的功能分为用户模块和管理员模块&#xff1a; 1、用户后台功能模块包括&#xff1a;首页、个人中心、订单评价管理、我的收藏管理、订单管理模块。 2、前台首页功能模块包括&#xff1a;首页、图书信息、图书资讯、个人中心、后台管理、购物车、在线聊天模块。 …

SAP MDG —— 更好地理解你的数据变更

概念 在SAP MDG on SAP S/4HANA 2021中&#xff0c;SAP发布了一种全新的数据分析框架&#xff1a;变更请求中的主数据变更分析。依赖该框架&#xff0c;你可以为你的最终用户提供强大的数据分析功能&#xff0c;以深度洞悉变更请求中到底变化了哪些数据。 使用这些分析功能&a…

Thinkphp6 分布式事务异常处理 1440 XAER_DUPID: The XID already exists

Mysql分布式事务&#xff0c;前提条件 MySQL中只有当隔离级别设置为Serializable的时候才能使用分布式事务。 执行两个命令确认环境 show variables like innodb_support_xa;show variables like %tx_iso%;异常信息 根据官方分布式示例 public function test(){Db::transa…

input空格回车输入标签

分析 我们自己封装input输入标签需要注意一下几点: 样式实现&#xff0c;span实现标签效果、input隐藏边框(Element-UI可以直接使用tag)。事件监听&#xff0c;确定生成标签的操作&#xff0c;可以是回车,并且需要监听离开焦点的情况。标签限制,最多几个,以及输入验证 html:&…

使用CDC模式改造遗留系统

项目改造背景及挑战 在我们经历的各种遗留系统改造之旅中&#xff0c;使用**绞杀者模式**来改造一个巨大的单体服务&#xff0c;是一种被广泛采用且验证行之有效的手段&#xff0c;在应用传统的绞杀者模式时&#xff0c;通常采用逐步替换的方式&#xff0c;将遗留系统中某一独…

b站pink老师JavaScript的ES6面向对象课程中:正则表达式案例代码——表单验证

目标效果&#xff1a; 1.当输入的手机号&#xff0c;QQ号&#xff0c;昵称&#xff0c;短信验证码&#xff0c;登录密码&#xff0c;确认密码&#xff1a;如果符合标准&#xff0c;就提示正确的文字;如不符合标准&#xff0c;则提示不正确。 2.判断确认密码是否与登录密码相等…

落实交通强国,鄂州临空区联手蘑菇车联打造新时代内陆开放高地

临空经济与智能网联、自动驾驶能擦出什么样的火花&#xff1f;今年7月&#xff0c;鄂州花湖机场投运&#xff0c;标志着这个湖北省“一号工程”正式蝶变为亚洲规模最大、自动化程度行业领先的航空货运枢纽。鄂州花湖机场项目也是湖北加快建设交通强国示范区、打造新时代“祖国立…

Spring Boot配置多个日志文件记录不同类日志示例

了解如何使用多个文件追加器在Spring 引导应用程序中创建多个日志文件。了解如何使用翻转策略、归档等配置所有文件追加器&#xff0c;wiihlog4j2和日志配置。 1. 带登录的多个日志文件 以下文件包含 5 个记录器。我们可以根据需要创建更多的记录器。logback.xml console– …

NeRF源码运行与学习(pytorch)

神经辐射场&#xff08;NeRF&#xff09;是一个简单的全连接网络&#xff08;权重约为5MB&#xff09;&#xff0c;经过训练&#xff0c;可以使用渲染损失再现单个场景的输入视图。网络直接从空间位置和观看方向&#xff08;5D输入&#xff09;映射到颜色和不透明度&#xff08…

翻译文本的软件有哪些?这几个翻译工具你可以试试看

文本翻译&#xff0c;是我们在生活中或工作中比较常见的一个需求。例如有时收到一份英文资料&#xff0c;没时间逐字翻译成中文&#xff0c;那就需要借助翻译工具来帮忙了&#xff1b;或者是有时需要将一些内容翻译成英文&#xff0c;而碰巧遇到句子不知道如何翻译&#xff0c;…

DDPM(Denoising Diffusion Probabilistic Models)扩散模型简述

引言 扩散模型最早是在2015年的Deep Unsupervised Learning using Nonequilibrium Thermodynamics文章中提出的&#xff0c;但当时扩散模型并不work&#xff0c;所以并没有被广泛应用。在2020年&#xff0c;Denoising Diffusion Probabilistic Models(简称为DDPM)的出现&#…

[附源码]java毕业设计校园闲置物品交易

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

MCE | 动物实验溶剂大讨论

在动物实验中&#xff0c;药物通常会以溶液 (Solution) 或混悬液 (Suspension) 的形式给药。我们需选择合适的溶剂&#xff0c;可以辅助超声加热措施&#xff0c;得到澄清的溶液或适合给药的混悬液。■ 人见人爱的生理盐水/PBS 对于水溶性很好的产品&#xff0c;用生理盐水 (Sa…