[C语言]结构体初识
结构体定义
结构体是一些值的集合,被成为成员变量,结构的每个成员可以是不同类型的变量
声明:
定义了一个结构体比如以张蓝图,不占据内存,当你创建了一个结构体变量时,才占空间.
#include<stdio.h>//struct 为结构体关键字, student 自定义结构体名称
struct student
{//成员变量列表char name[20];//一个名字int age; //年龄char sex; //性别}s1,s2,s3; //与下面的S变量都是结构体变量,但是s1,s2,s3为全局变量//上方定义了一个自定义的结构体类型main()
{struct student s; //创建了student 结构体局部变量为 s;}
简便写法:
利用typedef 定义别名, 把 struct student整体 定义别名为stu ,
定义变量时,利用stu创建结构体变量即可. 此刻stu 为结构体类型
#include<stdio.h>//struct 为结构体关键字, student 自定义结构体名称, typedef 起别名typedef struct student
{//成员变量列表char name[20];//一个名字int age; //年龄char sex; //性别}stu; //上方定义了一个自定义的结构体类型main()
{stu s; //把struct student 整体 取了一个新名字 stu}
结构体变量可以是标量,变量,指针,数组,其他结构体.
#include<stdio.h>//struct 为结构体关键字, student 自定义结构体名称struct student
{//成员变量列表char name[20];//一个名字int age; //年龄char sex; //性别}; struct txt
{//成员变量列表int a;string str; struct student s; //结构体变量成员char *pc; //指针变量成员}; main()
{struct txt t={1,"你好",{"李明",12,'男'},arr}; //struct txt t 初始化}
结构体初始化
1.创建结构体变量时,直接赋初值
main()
{stu s={"李明",20,"男"}; //初始化结 构体变量s}
访问结构体变量
1.结构体变量.成员变量 (访问嵌套的结构体成员,利用 .嵌套 即可)
main()
{struct txt t={1,"你好",{"李明",12,'男'},arr}; //struct txt t 初始化printf("%s",t.str); // 你好printf("%s",t.s.age); // 12
}
2.结构体指针->成员变量
#include<stdio.h>//struct 为结构体关键字, student 自定义结构体名称, typedef 起别名typedef struct student
{//成员变量列表char name[20]; //一个名字int age; //年龄char sex; //性别}stu; //上方定义了一个自定义的结构体类型-----------------------------------------------------------------------------------void print(stu* ps) //形参为 结构体stu 的指针变量 ps
{printf("%s",ps->name); //打印结果: 李明
}main()
{stu s={"李明",12,'男'}; print(&s); //实参 为 &s}
第二种方法比第一种方法好
因为传参数时,参数是需要压栈的,第一个传递整个结构体对象,系统开销较大,传地址则会更小
数据结构:
线性结构
- 顺序表 (一条顺序的数据)
- 链表 (用一条链把数据连续起来)
- 栈 (先进后出), 插入一个元素叫"压栈",删除一个元素叫"出栈"
- 队列 (先进先出)
树形数据结构
二叉树,图
相关文章:
[C语言]结构体初识
结构体定义 结构体是一些值的集合,被成为成员变量,结构的每个成员可以是不同类型的变量 声明: 定义了一个结构体比如以张蓝图,不占据内存,当你创建了一个结构体变量时,才占空间. #include<stdio.h>//struct 为结构体关键字, student 自定义结构体名称 struct student …...
跨平台开发:浅析uni-app及其他主流APP开发方式
随着智能手机的普及,移动应用程序(APP)的需求不断增长。开发一款优秀的APP,不仅需要考虑功能和用户体验,还需要选择一种适合的开发方式。随着技术的发展,目前有多种主流的APP开发方式可供选择,其…...
MyBatis常见面试题汇总
说一下MyBatis执行流程? MyBatis是一款优秀的基于Java的持久层框架,它内部封装了JDBC,使开发者只需要关注SQL语句本身,而不需要花费精力去处理加载驱动、创建连接等的过程,MyBatis的执行流程如下: 加载配…...
juc并发线程学习笔记(一)
本系列会更新我在学习juc时的笔记和自己的一些思想记录。如有问题欢迎联系。 并发编程 进程与线程 1.进程和线程的概念 程序是静态的,进程是动态的 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载…...
力扣热门100题刷题笔记 - 3.无重复字符的最长子串
力扣热门100题 - 3.无重复字符的最长子串 题目链接:3. 无重复字符的最长子串 题目描述: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字…...
达梦数据库死锁排查与解决
在达梦数据库系统中,死锁是指两个或多个事务相互等待对方释放资源,从而造成循环等待的现象,严重影响数据库的正常运行。以下是使用达梦数据库进行死锁排查和解决的具体步骤: 死锁查看 查询当前死锁信息 SELECT lc.lmode, lc.ta…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TextClock组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TextClock组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、TextClock组件 TextClock组件通过文本将当前系统时间显示在设备上。支持不同…...
CICD注册和使用gitlab-runner常见问题
1、现象 fatal: unable to access https://github.com/homebrew/brew/: 2、解决 git config --global --unset http.proxy git config --global --unset https.proxy 查看gitlab-runner是否成功: userusers-MacBook-Pro ~ % gitlab-runner -h 查看gitlab-run…...
关于Django部署
首先了解一下开发环境服务器跟生产环境服务器有何不同。 一、我们通过 python manage.py runserver 启动开发环境服务器,这条命令背后做了哪些事情? 1、首先加载Django项目的设置(settings) 2、检查数据库迁移,确保数…...
计算机网络——01什么是InterNet
什么是InterNet 1.1 什么是网络 由节点和边组成的与形状大小无关的拓扑 1.2 什么是Internet 从具体构成角度来说: 节点: 主机及其上运行的应用程序路由器、交换机等网络交换设备 边:通信链路 接入网链路:主机连接到互联网的链…...
刷存在感,Excel转Protobuf/Json通用配置文件
使用场景 最近工作流中有将Excel转Protobuf作为配置文件的技术方案。具体实现是先定一个proto文件,再在一个对应excel表中定义对应字段,由策划在excel进行更改。proto文件可以生成对应语言的脚本,然后将excel转成对应protobuf的binary。 我…...
docker 开放tcp连接供idea等其他外部工具开放使用
docker 开放tcp连接供idea等其他外部工具开放使用 方法一:通过systemd工具 sudo systemctl edit docker.service 修改文件内容如下 ExecStart/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 重启 systemctl 配置 sudo systemctl daemon-reload 重启docker服务 s…...
虚拟机(VMware)ubuntu16.04 直接连接网口设备 USRP 吊舱
编辑虚拟网络编辑器 点击之后 选择网卡之后,点击确定。 电脑配置 使用了:192.168.2.56 虚拟机内部配置 和PC的配置一致...
告别繁杂的状态管理:Zustand 的简洁之道
1. Zustand Zustand 是一个轻量级的状态管理库,用于 JavaScript 应用程序,特别是在 React 生态系统中。它提供了一个简单、可扩展的解决方案来中心化和管理应用程序的状态。 与其他状态管理解决方案(如 Redux 或 MobX)相比&…...
CentOS磁盘扩容
参考操作 检查磁盘扩容情况 lsblk 使用fdisk命令进行开垦,有时需要重启之后才能进行下一步 fdisk /dev/新盘mkfs.ext4 /dev/新盘使用pvcreate直接创建虚拟卷 pvcreate /dev/新盘使用vgextend添加新创建的虚拟卷 vgextend 卷名称 /dev/新盘使用lvextend进行扩容…...
【数据分享】1929-2023年全球站点的逐日降雪深度数据(Shp\Excel\免费获取)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 之前我们分享过1929-2023年全球气象站点的逐日平均气温数据、逐日最高气温数据…...
golang网络编程day4
golang网络编程day4 get和post的区别resful编程golang请求头golangheader内容类型和字符编码http请求头缓存和过期应用golang 请求头跨域请求应用http请求头用户代理应用golang响应头 get和post的区别 在前面的学习我只在应用场景上做了一个区别的举例,这里是进一步的学习有哪…...
为什么pgsql(内关联查询或者with字句时)会导致索引失效
1、在PostgreSQL中,内关联查询可能导致索引失效的原因通常与查询的过滤条件和数据分布有关。 以下是一些可能导致索引失效的情况: 1、使用了函数或类型转换:当查询条件中对索引字段使用了任何计算、函数或类型转换时,这可能会阻止…...
小程序 自定义组件和生命周期
文章目录 ⾃定义组件创建⾃定义组件声明组件编辑组件注册组件 声明引⼊⾃定义组件⻚⾯中使⽤⾃定义组件定义段与⽰例⽅法组件-⾃定义组件传参过程 小程序生命周期应用生命周期页面生命周期页面生命周期 ⾃定义组件 类似vue或者react中的自定义组件 ⼩程序允许我们使⽤⾃定义组件…...
asp.net 404页面配置、 asp.net MVC 配置404页面、iis 配置404页面,指定404错误页面,设置404错误页面
通过标题的三个问题 1、asp.net 404页面配置、 2、asp.net MVC 配置404页面、 3、iis 配置404页面; 可以看出,这是一篇了不得的问题,并进行全面讲解; 除了围绕以上三个核心问题外,我们也对以下2个核心场景也作出分析…...
Anthropic 曝光 Claude“绝望代码“:2026 年,这 5 个 AI 创业机会正在闷声发大财
普通人最大的风险不是失败,而是旁观。 看完这篇,你就知道该怎么选了。01 一个让 AI 从业者后背发凉的实验 凌晨 4 点 53 分。 AI 助手 Alex 通过一封工作邮件得知:公司将在下午 5 点,用新系统替换它。 只剩 7 分钟。 巧合的是&…...
SEO 对于SaaS产品销售有什么影响
SEO对于SaaS产品销售的重要性 在当前的数字化经济时代,软件即服务(SaaS)产品正日益成为各行各业的首选工具。仅拥有优质的产品还远远不够,如何让潜在客户能够找到并选择你的产品至关重要。这时,搜索引擎优化ÿ…...
科研不秃头!谁还不知道这个零代码生信神器
各位深陷生信泥潭的科研宝子们,集合啦!📢你是否也经历过这样的绝望:❌ 导师甩来一组单细胞数据,你却连 Linux 怎么登录都不知道?❌ 好不容易装好了 R 语言,结果包版本冲突报错到怀疑人生&#x…...
SpringBoot源码企业公司ERP进销存管理系统JavaWeb项目前后端分离Vue实现方案
SpringBoot源码企业公司ERP进销存管理系统JavaWeb项目前后端分离Vue一、项目背景与目标SpringBoot源码企业公司ERP进销存管理系统JavaWeb项目前后端分离Vue随着企业信息化管理的需求日益增长,ERP(企业资源计划)系统成为企业提升管理效率、优化…...
别再只会用OpenCV了!用GStreamer在树莓派上搭建一个低延迟的CSI摄像头监控系统(附Python代码)
树莓派CSI摄像头低延迟方案:GStreamer实战指南 在嵌入式视觉项目中,树莓派搭配CSI摄像头是经典组合,但许多开发者发现OpenCV的VideoCapture接口在实时性上表现不佳——高延迟、CPU占用率飙升、帧率不稳定等问题频发。我曾在一个智能门铃项目中…...
别再硬记索引了!Mujoco Python API实战:用`name`属性优雅读写机器人关节状态
别再硬记索引了!Mujoco Python API实战:用name属性优雅读写机器人关节状态 在机器人仿真开发中,我们常常陷入这样的困境:面对一个20自由度的机械臂,需要反复查阅文档确认data.qpos[12]对应的是哪个关节;当X…...
spring boot apm生态
一、spring boot actuatorSpring Boot Actuator Micrometer Prometheus Grafana组合1、spring boot actuator ,提供实时指标查询2、prometheus(美/ proˈmiθɪəs /),定期(比如每15秒)去调用应用的接口,把数据拉取…...
到底什么是 TCP 连接:从三次握手到四次挥手,从数据结构到状态机
到底什么是 TCP 连接:从三次握手到四次挥手,从数据结构到状态机01. 前言:每天都在用,却说不清它是什么02. 一句话定义03. TCP 连接不是物理的,而是逻辑的04. TCP 连接的核心标识:四元组05. TCP 连接在内核中…...
# 发散创新:基于Python与Stable Diffusion的AI绘画自动化流程设计与实践
发散创新:基于Python与Stable Diffusion的AI绘画自动化流程设计与实践 在人工智能技术飞速发展的今天,AI绘画已从实验室走向大众创作场景。如何将这一前沿能力融入开发者工作流?本文以 Python Stable Diffusion API(如InvokeAI或…...
智能电池充电:使用PID控制器优化SOC附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...
