18-结构体(初识)

18-1 概念

我们现在已经知道的数据类型:

char short int long float double

但是当我们需要描述一个复杂对象时,这些数据类型单独拿出来不能满足,如:

人:名字+年龄+性别+地址+电话

书:书名+作者+出版社+定价+书号

所以,C语言就给了自定义类型的能力,自定义类型中有一种叫:结构体struct

结构体是把一些单一类型组合在一起的做法:

struct Stu  //学生
{char name[20];  //名字int age;  //年龄char sex[10];  //性别char tele[12];  //电话号码
};

struct Stu占空间吗?

并不占空间,这里的struct Stu实质上就是个类型,只有:

struct Stu s;

创建该类型的变量的时候才占空间

18-2 结构体的初始化

创建并初始化:

struct Stu
{char name[20];int age;char sex[10];char tele[12];
};
int main()
{struct Stu s = { "zhangsan",20,"nan","15596668862" };return 0;
}

18-3 操作符.和->

在此,我们可以讲一下之前跳过的操作符.和->了 

18-3-1 .

使用前提:有结构体对象

访问结构体对象的成员:结构体对象.成员名:s.name/s.age/ s.sex/ s.tele

struct Stu
{char name[20];int age;char sex[10];char tele[12];
};
int main()
{struct Stu s = { "zhangsan",20,"nan","15596668862" };printf("%s %d %s %s\n", s.name, s.age, s.sex, s.tele);return 0;
}

运行结果:

当然,只要打印的类型与结构体对象的成员对应,顺序可以改变

18-3-2 ->

使用前提:有地址/指针

结构体指针变量->成员名:ps->name/ps->age/ps->sex/ ps->tele

struct Stu
{char name[20];int age;char sex[10];char tele[12];
};
void print(struct Stu* ps)
{printf("%s %d %d %s\n", (*ps).name, (*ps).age, (*ps).sex, (*ps).tele);printf("%s %d %d %s\n", ps->name, ps->age, ps->sex, ps->tele);
}
int main()
{struct Stu s = { "zhangsan",20,"nan","15596668862" };print(&s);return 0;
}

运行结果:

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

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

相关文章

HTML静态网页成品作业(HTML+CSS)——电影加勒比海盗介绍设计制作(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

使用Cloudflare来给wordpress网站图片自动压缩加速

首先打开Cloudflare Worker 创建一个服务名称随意,内容使用连接内的wordpress-worker.js内容覆盖原内容即可 https://github.com/Mecanik/cloudflare-image-resizing-worker 然后打开触发器然后添加路由,设置你的域名*.example.com/*注意使用通配符使域名…

2024年短视频矩阵系统源头技术开发商 --- 就315会议主题结束后分析

前言:(禁止抄袭复用本编技术分享) 短视频矩阵315提出的ip开发你的技术团队是不是还在进行? 2024年短视频矩阵系统源头技术开发商 --- 就315会议主题结束后分析,昨天的315主题会议不知道大家都看了吗,接…

STC89C52单片机 启动!!!(三)

矩阵键盘介绍 当键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。采用逐行或逐列的“扫描”,就可以读出任何位…

厉害了,2024最新听全网音乐神器

今天分享个神器app简助手,听全网音乐和看片,下载地址 夸克网盘分享 玩转互联网达人 苏生不惑备用号,分享各种黑科技软件资源和技巧,带你玩转互联网。 17篇原创内容 公众号 最新版本更新日志。 进入音乐搜索: 听周杰…

day09-Mybatis

一、Mybatis 基础操作 1 需求 功能列表: 查询 根据主键ID查询 条件查询新增更新删除 根据主键ID删除 根据主键ID批量删除 2 准备 实施前的准备工作: 准备数据库表创建一个新的 springboot 工程,选择引入对应的起步依赖(mybatis、…

Vue3-03_组件基础_上

单页面应用程序 什么是单页面应用程序 单页面应用程序(英文名:Single Page Application)简称 SPA,顾 名思义,指的是一个 Web 网站中只有唯一的一个 HTML 页面,所有的 功能与交互都在这唯一的一个页面内完…

Java八股文(Element Plus)

Java八股文のElement Plus Element Plus Element Plus 什么是Element UI 和 Element Plus? Element UI 和 Element Plus 是基于 Vue.js 的一套非常受欢迎的开源 UI 组件库,用于快速构建具有现代化设计和丰富交互效果的前端界面。 Element UI 和 Element…

固态存储是未来|浅析SSD架构的演进与创新技术-2

除了性能和容量这两个最大的诉求外,其他的需求已经成为SSD现场架构的核心竞争力。 一是安全性:随着数据安全威胁日益严重,SSD的安全设计成为关键,包括提供单芯片硬件信任根、遵循FIPS140-3安全标准以及支持一次性可编程位字段来锁…

uni app 钓鱼小游戏

最近姑娘喜欢玩那个餐厅游戏里的钓鱼 &#xff0c;经常让看广告&#xff0c;然后就点点点... 自己写个吧。小鱼的图片自己搞。 有问题自己改&#xff0c;不要私信我 <template><view class"page_main"><view class"top_linear"><v…

react-native使用FireBase实现google登陆

一、前置操作 首先下载这个包 yarn add react-native-google-signin/google-signin 二、Google cloud配置 Google Cloud 去google控制台新建一个android项目&#xff0c;这时候需要用到你自己创建的keystore的sha1值&#xff0c;然后会让你下载一个JSON文件&#xff0c;先保…

C#操作MySQL从入门到精通(4)——连接MySQL数据库

前言 我们创建好数据库、建立好数据库的表以后&#xff0c;我们就需要访问数据库了&#xff0c;比如将数据插入数据库的某张表中等一系列操作&#xff0c;在进行这些操作之前我们需要连接上数据库&#xff0c;本文就是详细讲解如何连接MySQL数据库的。 1、使用Navicat Premiu…

基于ssm+layui的图书管理系统

基于ssmlayui的图书管理系统 账户类型分为&#xff1a;管理员&#xff0c;用户管理员私有功能用户私有功能公共功能技术栈功能实现图 视频演示 账户类型分为&#xff1a;管理员&#xff0c;用户 图书管理系统主要登录账户类型为管理员账户与用户账户 管理员私有功能 账户管理…

厉害了!机器视觉在农业中的应用

机器视觉是一门涉及模式识别、神经生物学、计算机科学、人工智能、图像处理、心理物理学等诸多领域的交叉学科。主要是通过计算机对人类某些视觉方面的智能行为的模拟和再现,再处理并理解从客观事物的图像中提取到的信息,最终达到在实际检测和控制中应用的目的。近年来,随着…

PHP 生成图片

1.先确认是否有GD库 echo phpinfo(); // 创建一个真彩色图像 $image imagecreatetruecolor(120, 50);// 分配颜色 $bgColor imagecolorallocate($image, 255, 255, 255); // 白色背景 $textColor imagecolorallocate($image, 230, 230, 230); // 黑色文字// 填充背景 image…

【Network Management】DCM模块唤醒网络是主动唤醒还是被动唤醒

目录 前言 正文 1.CanNm的状态机分析 2.ComM的状态机分析 3.诊断报文唤醒网络知识扩展

RecyclerView 源码分析之一

简书无法编辑保存了&#xff1f;什么bug&#xff1f;还得回CSDN来写。 写在前面&#xff0c;看RecyclerView源码有点"老虎吃天&#xff0c;无从下口"的感觉。多次提笔想写关于RecyclerView的源码相关文章&#xff0c;最终也是作罢。最大的原因还是感觉RecyclerView的…

Java学习笔记(12)

包 导包 Final 不能被改变的&#xff0c;修饰方法 类 变量 方法不能被重写 类不能被继承 变量&#xff0c;赋值一次&#xff0c;变成常量&#xff0c;不能再被赋值 final修饰引用数据类型&#xff0c;地址值不能变&#xff0c;里面的内容可以变 字符串是不可变的 源码中使…

ThreeJs 可视化大屏地图

效果图&#xff1a; 今天给各位提供一个可视化地图的案例和源码&#xff0c;关注下吧各位&#xff01;回复"大屏地图" 获取工程 1、案例分析&#xff1a;主要使用了UI 美工图片&#xff0c;然后获取地图的json 数据绘制图形&#xff0c;贴图使用该区域的地图纹理进行…

基于SpringBoot和Vue的宠物商城网站

目录 一、 绪论1.1 研究背景1.2 研究目的1.3 研究意义 二、相关技术2.1 Spring Boot简介2.2 Vue简介2.3 前后端分离架构概述2.4 其他技术和工具 三、需求分析3.1 功能需求3.1.1 用户模块功能需求3.1.2 商品模块功能需求3.1.3 论坛模块功能需求3.1.4 留言板模块功能需求 3.2 用户…