黑马程序员---学习笔记9:构造类型和结构体

别再让四足机器人走路像螃蟹!SG90舵机步态调试中的5个常见误区与解决 本文深入探讨了四足机器人步态优化中的5个关键技术突破,重点解决SG90舵机调试中的常见误区。从舵机中位点校准、步态时序设计到动力学建模,提供了详细的解决方案和代码示例,帮助开发者实现从螃蟹步到优雅行走的转变。适用于STM32开发者及机器人爱好者。 阅读详情

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-


构造类型:
根据已经定义的一个或者多个数据类型用构造的方法定义的。
构造类型有以下几种:
1)数组类型
2)结构体类型
3)公用体(联合)类型

结构是一种构造类型,由若干成员组成,每一个成员可以是一个基本数据类型或者又是一个构造类型。

定义结构体的方法:

struct 结构名{

成员列表

};(最后的分号不能省)

struct Car {
char *color;
int lunzi;
int speed;
};

结构体的定义方法:
1)先定义结构,再说明结构变量

struct Student{
int Sno;
char Name[21];
int Age;
float Score;
};
注意:
(1)结构体定义完成以后,计算机并不会给结构体分配内存空间。
(2)会在定义结构体变量后,分配存储空间。
结构体变量定义格式:
struct 结构体名 结构体变量名
struct Student Stu;这句话表示,定义一个Student 结构体类型的变量,变量 的名称是Stu。
Stu可以存放学生的学号,姓名,年龄,成绩

2)定义结构体的同时,定义结构变量。

格式:
struct 结构体名
{

}结构体变量1,结构体变量2。。。;

3)使用匿名结构体,定义结构体变量
格式:
struct {


}结构体变量1,结构体变量2,结构体变量3;

结构体变量中的成员访问:

结构体变量名.成员名

结构体变量初始化:
1)先定义变量然后初始化
struct Student{
int Sno;
char Name[21];
int Age;
float Score;
};
struct Student Stu1;
Stu1.Sno=38;
Stu1.Age=18;
Stu1.Score=59.99f;
strcpy(stu1.name,"张三丰");
1)stu1.name占用多少字节?
printf("Stu1.name %ld\n",sizeof(Stu1.name));
21个字节,因为数组分配了21个字节
2)stu1.name的字符串长度是多少?
printf("Stu1.name 长度 %ld",strlen(stu1.name));
9个

汉字编码问题:
1)UTF-8 Xcode中使用的汉字编码格式,国际通用格式 占3个字节
2)GB2312 GBK 国标 一个汉字占2个字节

2)定义结构体变量(注意:这里说的是变量而不是结构体)的同时初始化
struct Student Stu2={8,“张丹峰”,18,49.99f};

3)定义结构体变量的同时,指定元素初始化
struct Student Stu3={.name="Lady Gaga"};

结构体存储的原理:
结构体占用的内存空间,是每个成员占用的字节数之和(考虑对齐问题)

对齐的意义:
为了简化计算机处理器和内存之间传输系统的设计,提升读取数据的速度,在读取时都以n个字节的倍数进行读取,这样对于字节数不同的数据省去了读取时判断的操作。

结构体对齐的含义:
1)结构体总长度
2)结构体各数据成员的内存对齐,也就是各个成员相对于结构体起始地址的位置

结构体大小的计算方法与步骤:
1)先找对齐模数
对齐模式是结构体中,基本数据类型占用字节最大的那个
2)再以模数为基数一个变量一个变量的分配内存,如果不足,模数,两个变量可以共同存在一个模数中

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V3 2024华为的重参数轻量化模型 一、本文介绍 本文记录的是基于 GhostNetV3 的 YOLOv11 轻量化改进方法研究。GhostNetV3的轻量模块采用重参数化方法,训练时为深度可分离卷积和1×1卷积添加线性并行分支,推理时通过逆重参数化移除分支、折叠操作,能够在不增加推理成本的同时提高性能,从而实现YOLOv11的轻量化改进。 专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进 专栏地址:YOLOv11改进专栏——以发表论文的角度,快速 阅读详情

相关推荐

CoMP 协同多点传输技术

CoMP CoMP是什么 解决什么问题 有什么缺点 CoMP(Coordinated Multiple Points)协同多点传输,通信术语,LTE-A的重要技术之一。 CoMP传输是指地理位置上分离的多个传输点,协同参与为一个终端的数据(PDSCH)传输或者联合接收一个终端发送的数据(PUSCH),参与协作的多个传输点通常指不同小区的基站。CoMP技术将边缘用户置于几个基站的同频率上,几...

ilean_J的博客 2万+

实验 11 结构体

输入四个人的年龄和姓名,排序后,按年龄,从小到大输出人员年龄及其姓名 假如输入 30 aaa 23 bbb 15 ccc 32 ddd 应当输出 15 ccc 23 bbb 30 aaa 32 ddd #include<stdio.h> struct people{ int age; char name[5]; } ; ...

weixin_34402090的博客 172

电机控制中ADC采样时序的优化策略与实践

本文深入探讨了电机控制中ADC采样时序的优化策略与实践,重点分析了BLDC和FOC控制方案中的核心挑战与解决方案。通过硬件布局优化、软件滤波技术及动态时序补偿等方法,有效提升电流采样精度和系统稳定性,为电机控制系统的性能优化提供实用指导。

weixin_42519985的博客 387

C++程序设计——知识点总结

C++程序设计课程的总结,方便以后快速查阅和复习 Week 2 从C走进C++ 函数指针 函数名是函数的入口地址,指向函数的指针称为“函数指针”。 比如,qsort库函数: void qsort(void *base, int nelem, unsigned int width, int ( * pfCompare)( const void *, const void *)); 其...

weixin_34336292的博客 469

深圳SILAS(智能融合低空系统)无人机调度系统介绍

一、系统定位与核心目标SILAS(Smart Integrated Lower Airspace System)是深圳市为低空经济打造的“数字大脑”,由粤港澳大湾区数字经济研究院自主研发,定位为城市级低空飞行智能调度与管理平台。核心目标是解决低空经济中“高密度、高复杂度、多主体”的飞行调度难题,实现空域资源的高效分配、飞行安全的智能监管及全场景服务的无缝协同,支撑深圳从“无人机之都”向“天空之城”升级。二、核心架构:低空基础设施“四张网”设施网。

主攻大数据 人工智能 物联网 安全 低空经济等方向。mtsc 、gtest特邀分享嘉宾 3750

PINN——加入物理约束的神经网络

【摘要】 基于物理信息的神经网络(Physics-informed Neural Network, 简称PINN),是一类用于解决有监督学习任务的神经网络,它不仅能够像传统神经网络一样学习到训练数据样本的分布规律,而且能够学习到数学方程描述的物理定律。与纯数据驱动的神经网络学习相比,PINN在训练过程中施加了物理信息约束,因而能用更少的数据样本学习到更具泛化能力的模型。本文主要解析这种神经网络以...

qq_39444290的博客 4585

数据结构实验一

《数据结构》实验一:      VC编程工具的灵活使用 一..实验目的      复习巩固VC编程环境的使用,以及C++模板设计。 1.回顾并掌握VC单文件结构程序设计过程。 2.回顾并掌握VC多文件工程设计过程 3.掌握VC程序调试过程。 4.回顾C++模板和模板的程序设计。

BRUCEVANWYY的专栏 860

OpenVINS实战指南:从环境搭建到RGB-D相机实时建图

本文提供了一份详细的OpenVINS实战指南,涵盖从Ubuntu与ROS环境搭建、依赖安装与编译调试,到连接RGB-D相机进行实时建图的完整流程。重点解决了RealSense D435i等设备的驱动配置、话题对齐及常见问题,并分享了传感器标定与性能优化技巧,帮助开发者快速实现稳定高效的视觉惯性里程计系统。

weixin_29201313的博客 485

构造方法的注意事项

我们其实一直在使用构造方法,但是我们没有定义构造方法,那么它是哪来的呢?

JavaCoder_juejue的博客 794

get_ccopt系列命令介绍

get_ccopt_property:用来获取cts阶段,clock tree上所有的参数信息,可以通过get_ccopt_property –help *获取所有参数。get_ccopt_skew_group_delay:用来获取skew group的相关信息,可以通过筛选出特定条件下skew_group的参数,如skew_group下latency最长是多少;get_ccopt_clock_tree_source_groups:获取clock tree的source group名字;

芯冰乐 281

Cesium 实战 28 - 三维视频融合(视频投影)

Cesium 实战 27 - 三维视频融合(视频投影)。

非科班Java出身GISer的博客 3371

黑马程序员C++学习笔记

C++基础入门 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 ​ Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 1.1.2 创建文件 右键源文件,选择添加->新建项 给C++文件起个名称,然后点击添加即可。 1.1.3 编写代码 #include<iostream> using namespace std; int main() { cout &

weixin_46015291的博客 6457

SAP CDS View 教程里的标准视图:SEPM_I_SalesOrderItem_E 当成一张表来用之前,你需要先弄清它到底是什么

摘要:SEPM_I_SalesOrderItem_E 是 SAP EPM demo 中的预交付 CDS 视图,用于表示销售订单行项目数据。它采用 VDM 命名规范,_E 后缀表示对外隐藏内部 UUID 键,提供业务友好的外部 ID 接口。该视图常见于 ABAP Platform 7.50+、开发版系统及 Gateway 教程中,可像表一样通过 Open SQL 查询。实际项目中,这类视图能有效解决内外系统键值映射问题,示例代码展示了如何查询其数据。使用时需注意系统是否安装了 EPM demo 内容。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 553

黑马程序员SpringBoot2全套教程学习笔记

spring-boot-study 介绍 代码仓库地址:https://gitee.com/CandyWall/spring-boot-study 跟着黑马程序员spring boot教程做的学习笔记,本笔记跟视频内容的项目名称和代码略有不同,都是基于我自己的考量,代码都已经过运行验证过的,仅供参考。 视频教程地址:https://www.bilibili.com/video/BV15b4y1a7yG 注:四级标题和部分5级标题是使用子项目名称命名的,和我代码仓库的项目是一一对应的。 每个子项目对应的视频链

糖果墙的博客 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

黑马程序员--C基础--构造类型和结构体

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-1、构造类型1–构造类型:构造类型是根据已定义的一个或多个数据类型用构造的方法来定义的。 2–C语言中的构造类型有:数组类型、结构体类型、共用体类型。 3–“结构”是一种构造类型,它是由若干“成员”组成的,每一个成员可以是一个基本数据类型或者又是一种构造类型。2、结构体(1)结构体的定义: 一般格式为:

qq_24842063的博客 475

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

黑马程序员Python从入门到精通代码汇总

本帖子是本人于2023年暑假期间在B站观看《黑马程序员python教程,8天python从入门到精通》通过基于web的Jupyternotebook实时编译交互环境整理的Python学习笔记,大家可以根据黑马原视频对照学习。

Mickey的博客 7479

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

黑马程序员———C语言———【构造类型及结构体】

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- ——————————————————————————————————————————————————————————————————— 一、构造类型 概念:构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。 二、定义结构体的方法 概念:由相同类型或不同类型的数据用构

雪碧i的博客 608

【C++】黑马程序员-C++基础语法学习笔记

根据黑马程序员C++课程内容,结合讲义,将自己学习C++的过程中将自己觉得有必要记下的笔记进行整理,方便复习回顾,编程环境为VSCode。编写代码: 运行程序:作用: 在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码两种格式通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明 多行注释: /* 描述信息 */ 通常放在一段代码的上方,对该段代码做整体说明 多行注释快捷键: ①注释/取消:Ctrl+Shift+/ ②注释:Ctrl+K+C ③取消注释:Ctrl+K+U作用:给一段指定的内

qq_62361050的博客 1792

探索Java集合的奥秘:黑马程序员的宝藏笔记

探索Java集合的奥秘:黑马程序员的宝藏笔记 【下载地址】黑马程序员Java学习笔记集合 本资源文件包含了黑马程序员的Java学习笔记,重点聚焦在集合部分。内容包括源代码示例、相关图片以及详细的学习笔记,旨在帮助读者深入理解Java中的集合框架 ...

gitblog_06508的博客 607

《黑马程序员python教程,8天python从入门到精通,学python看这套就够了》学习笔记总目录

本文是对《黑马程序员python教程,8天python从入门到精通,学python看这套就够了》所有知识点的笔记进行总结分类。 学习时总结的目录笔记以及思维导图和实训,将在后续更新。

放下华子我只抽RuiKe5的博客 8842

黑马程序员—八期黑马,我放弃了

文章来源:黑马程序员,黑马论坛

heima_271的专栏 5031

黑马程序员—我的面试,我的学习,我的经历

文章来源:黑马程序员,黑马论坛        首先还是简单的做个自我介绍吧,我是黑马七期的一名很普通的学员,从黑马毕业有一个多月了,现在也上班了,薪水不高试用期5.6k转正7k,这次主要就是想和大家聊一聊我来黑马之前的一些想法,以及来黑马学习完以后,找工作的一些经验分享,可以给一些想要来学习,或者是正在学习,以及正在找工作的学弟、学妹们一些参考,同时也祝愿你们能够尽快

heima_28的专栏 1万+

前端学习笔记-黑马程序员

前端学习笔记-黑马程序员 【下载地址】前端学习笔记-黑马程序员 这是一份由黑马程序员精心整理的前端学习笔记,专为初学者和进阶开发者设计。内容全面覆盖前端开发的核心技术,包括HTML、CSS、JavaScript等基础知识,以及常用框架、工程化、性能优化和安全问题等高级主题。通过系统化的章节安排和丰富的代码示例,帮助您快速...

gitblog_06722的博客 512

黑马程序员C++学习总结【核心篇】

附:参考自哔哩哔哩黑马程序员所做的学习笔记

小幸运召唤师的博客 2269

黑马程序员和尚硅谷前端Javascript学习笔记

元素对象.addEventListener('事件类型',要执行的函数)事件监听三要素:事件源:那个dom元素被事件触发了,要获取dom元素事件类型:用什么方式出发,比如鼠标单击clik、鼠标经过mouseover、文本框输入内容等事件调用的函数(事件处理程序):要做什么事alert('你好呀!')})事件监听的版本扩展:事件监听发展史:DOM L0事件源.on事件 = function(){}按钮DOM L1事件源.addEventListener(事件, 事件处理函数)

m0_74823044的博客 1412

多线程(黑马程序员学习笔记)

本文是黑马程序员Java视频教程的学习笔记,重点介绍了进程、线程及其在Java中的实现方式。进程是系统资源分配的基本单位,具有独立性、动态性和并发性;线程是进程中的任务执行单元,多线程能提高执行效率。Java中开启线程的方式包括继承Thread类、实现Runnable接口和实现Callable接口,分别适用于不同场景。文章还详细讲解了线程的常用方法,如获取线程名称、线程休眠、设置优先级和守护线程等。此外,探讨了线程安全问题及解决方案,如同步代码块、同步方法和Lock锁,并介绍了死锁的产生条件及避免方法。

A2294249395的博客 1637
上一篇: 黑马程序员---学习笔记8:数组指针
下一篇: 黑马程序员---学习笔记10:结构体数组
七分热度_HD
博客等级 码龄14年 12粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值