Linux操作系统使用及C高级编程-D11-D13结构体

        由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员”,其描述了一块内存空间的大小及解释意义。

        语法:

        struct 结构体名

        {

                结构体成员列表

        };

        下图是struct的定义和使用方法,其中20行这种赋值方式错误,因为字符串是常量,只能在定义时就进行赋值,不能在后面赋值了,赋值是通过19行​​​​​​​

当然也可以直接定义时就进行赋值 

 

 局部赋值方式

 结构体数组

将自定义的结构体放入到数组中方便维护

 语法:

        struct 结构体名 数组名[元素个数] = {{},{},......{}}

 结构体指针

        通过指针访问结构体中的成员

struct 结构体名 *指针名;

        利用操作符->可以通过结构体指针访问结构体属性

指针指向了结构体地址

 ​​​​​​​

 结构体嵌套

 结构体大小

 字节对齐

        针对结构体而言,通常编译器会自动对其成员变量进行对齐,以提高数据存取效率

        1、移植原因:不是所有的硬件平台都能访问任意地址上的任意数据;某些硬件平台只能在某些地方处取某些特定类型的数据,否则抛出硬件异常

        2、数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因是,为了访问未对齐地内存,处理器需要作两次内存访问;而对齐地内存访问仅需要一次访问。

结构体大小计算方法

        自身对齐:数据类型本身大小

        默认对齐:电脑

        有效对齐:结构体最终以多少字节对齐(取自身和默认的最小值)

                地址要能够整除有效对齐,所以导致了会浪费一些地址

 下面左图是struct A,右图是struct C

 ​​​​​​​

 位域

        是把一个字节中的二进制位分为几个不同区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同对象用一个字节的二进制位域来表示

定义并 赋值

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c语言上机作业:迭代法求平方根

1.题目 设计一个函数func用迭代法编程求一个数的平方根。平方根的迭代公式为:牛顿迭代法,(要求前后两次迭代值求差的绝对值小于10的-9次方) 2.思路 a.这里要求我们设置一个函数能够完成牛顿迭代法,这里需要使用到函数迭代的知识&#xff0…

时间复杂度与空间复杂度

我们知道算法的效率分为时间效率和空间效率,接下来我们就对这两者进行讨论。 一.时间复杂度. 又被称为时间效率,主要反映一个算法的运行速度。 定义:计算机算法中,算法的时间复杂度是一个函数,它定量描述了该算法的…

excel自定义函数之汉字转为拼音及大写字母

使用场景:想把姓名转化为拼音格式,然后拼音转为大写字母 至于怎么在excel里面自定义函数,自行百度都有,这里简单截图看看。 步骤:文件》选项》自定义功能区》 打开编辑窗口 把下面这段代码粘贴就能实现汉字转化为拼音…

Vulnhub 解决虚拟机网络问题

前言: 有的时候,我们从vulnhub官网下载ovf文件导入到虚拟机后,使用扫描器扫描存活的时候发现扫不到靶机的IP,这是因为虚拟机的网卡配置有问题。我们需要进安全模式修改一些配置。 1. 在虚拟机开机的时候按一下上下键,让…

FreeRTOS内存管理分析

目录 heap_1.c内存管理算法 heap_2.c内存管理算法 heap_3.c内存管理算法 heap_4.c内存管理算法 heap_5.c内存管理算法 内存管理对应用程序和操作系统来说非常重要,而内存对于嵌入式系统来说是寸土寸金的资源,FreeRTOS操作系统将内核与内存管理分开实…

Kubeadm部署Kubernetes Containerd集群

文章目录 概述一、硬件系统二、基础配置设置主机名配置主机名与IP地址解析关闭防火墙与selinux时间同步(ntp)升级系统内核配置内核转发及网桥过滤*安装ipset及ipvsadm关闭SWAP分区 三、Containerd准备Containerd获取下载解压Containerd配置文件生成并修改Containerd启动及开机自…

【项目管理】甘特图(2)——甘特图教程

哈喽啊,你好,我是雷工。 通过上节初步认识了甘特图,本节学习如何一步步创建甘特图,以下为学习笔记。 一、样例展示 下边记录创建甘特图的操作步骤,完成的实际效果如下图所示: 实例图的上端展示项目的重要…

ChatGLM2 大模型微调过程中遇到的一些坑及解决方法(更新中)

1. 模型下载问题 OSError: We couldnt connect to https://huggingface.co to load this file, couldnt find it in the cached files and it looks like bert-base-uncased is not the path to a directory containing a file named config.json. Checkout your internet con…

过了那么多1024节才知道……

各位大佬好啊,相信程序员们都知道1024节,那么咱程序员一般会采取什么样的方式来度过程序员节呢?那我们就继续往下看哦,小编包您满意! 先来了解一下历史吧!1024节的起源可以追溯到2009年,当时俄…

windows排除扫描文件夹

搜索防火墙和网络保护 点击病毒和威胁防护 往下拉,找到排除项 添加排除项

【在飞书捷径中用HTTP请求】

在飞书捷径的请求体中的变量,注意外面要有个双引号。

转型做视频了,博客就是稿子,继续坚持写博客,同时发布视频,能写博客说明思路清晰了,能再讲明白,理解就更透彻了,紧跟上时代发展。

1,今天特别记录下,B站给开通了《合集》功能 最近使用视频制作了几个视频。播放量还不错,最好的已经到了 2.6K了。 然后粉丝也涨到了 200个。 添加链接描述 紧跟时代:从写博客到录视频,粉丝大涨,突破200个&…

扩散模型实战(十一):剖析Stable Diffusion Pipeline各个组件

推荐阅读列表: 扩散模型实战(一):基本原理介绍 扩散模型实战(二):扩散模型的发展 扩散模型实战(三):扩散模型的应用 扩散模型实战(四&#xff…

Linux下安装go

正式环境: 1、找到linux 版本go包 (Downloads - The Go Programming Language) 2、下载 wget https://dl.google.com/go/go1.17.5.linux-amd64.tar.gz3、解压到/usr/local (官方推荐) tar -C /usr/local -zxvf go1…

火狐挂代理访问问题Software is preventing Firefox from safely connecting to this site

1、报错 Software is preventing Firefox from safely connecting to this site2、解决步骤 火狐浏览器访问http://burp,右上角有下载按钮下载下来证书文件 在 Firefox 中设置证书颁发机构 (CA) 验证

小程序中打印机纸张都支持哪些尺寸?

在小程序中添加打印机功能是一项非常实用的功能,它可以让用户方便地将小程序中的内容打印出来。然而,当用户想要打印内容时,他们可能会关心打印纸张支持哪些尺寸。打印机分为四种打印机:小票、标签、发货单和电子面单。下面具体介…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大关键点分析

数字化时代银行网点厅堂营销需要抓住以下5大关键点: 1、精准识别客户:在数字化时代,银行网点厅堂营销的关键在于精准识别客户。通过利用大数据和人工智能技术,银行可以分析客户的行为和需求,从而更好地了解客户&#…

7 进制数字转换

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/base-7/description/ 给定一个整…

关于Unity Time.deltaTime的理解和使用

Unity中的Time.deltaTime是一个表示上一帧到当前帧所用时间的浮点数。 它可以让Unity应用程序能够以平滑的方式在不同的帧率下运行。 要深刻理解Time.deltaTime,首先得了解Unity引擎得工作原理。 Unity引擎以每秒帧数(FPS)的形式运行。 比…

《洛谷深入浅出基础篇》P3916 图的遍历——逆向搜索

上链接: P3916 图的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P3916上题干: 题目描述 给出 N 个点,M 条边的有向图,对于每个点 v,求 A(v) 表示从点 v 出发,能到…