C语言,结构体,结构体大小,

      1、结构体:

        用于存储不同数据类型的多个相关变量,从而形成一个具有独立性的组合数据类型。

结构体的声明:

struct 结构体类型名{

      数据类型 成员1;

      数据类型 成员2;

      数据类型 成员3;

………

}//注意此处的分号

声明:创建了一种自定义的数据类型,这种类型叫做<struct 结构体类型名>è数据类型;

      struct student(){

      char name[32];

      int age;

      char sex;

      double score;

}

struct student è 自定义一个数据类型

定义结构变量:

      struct studet  结构体变量名;

      struct studet stu;

初始化:

      struct student stu ={ “zhangsan”,18 ,’M’,88.8};

使用:

      结构体变量名.成员名:--> 数组名[下标]

      stu.age -->18;

赋值:

      给结构体内容赋值时,只能一个一个成员的去赋值,

      但是可以相同类型的结构体之间可以直接赋值。

结构体指针:

      struct student *p;

      使用指针来进行获取数据

      (*p).sex   -->   ’m’      //基本不用

      p->sex    -->   'm’      //使用这个

/*===============================================
*   文件名称:struct_KT.c
*   创 建 者:WM
*   创建日期:2023年08月15日
*   描    述:结构体基础知识
================================================*/
#include <stdio.h>
#include<string.h>
#include <stdlib.h>
typedef struct student
{char name[32];int age;char sex;double score;
}stu,*pstu;int main(int argc, char *argv[])
{// stu s1={"zhangsan",18,'m',88.8},s2;//s2=s1;// strcpy(s2.name,"lisi");// s2.age=19;// s2.sex='w';// s2.score=29.0;stu s3;scanf("%s",s3.name);scanf("%d",&s3.age);//scanf("%*c%c",&s3.sex);//方法1、去除脏字字符'\r'回车getchar(); //方法2、去除脏字字符'\r'回车,放在输入数据之前scanf("%c",&s3.sex);scanf("%lf",&s3.score);//结构体指针pstu p=&s3;printf("%s,%d,%c,%.2lf\n",s3.name,s3.age,s3.sex,s3.score);printf("%c\n",p->sex);pstu k=(struct student *)malloc(sizeof(stu));strcpy(k->name,"wangwu");puts(k->name);free(k);return 0;
} 

2、结构体大小:

  1. 使用结构体成员中最大的数据类型的长度来对齐。一个成员不会分到多个格子里。
  2. 从上到下开始对齐运算。只会放到自己数据类型大小的倍数的位置上。
  3. 数组相当于写了一堆对应类型的变量。

      

1111

1011

1000

所以为12

1111 1111

1111 1111

1111 1110

1100 0000

1111 1111

所以为40

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

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

相关文章

转行软件测试四个月学习,第一次面试经过分享

我是去年上半年从销售行业转行到测试的&#xff0c;从销售公司辞职之后选择去培训班培训软件测试&#xff0c;经历了四个月左右的培训&#xff0c;在培训班结课前两周就开始投简历了&#xff0c;在结课的时候顺利拿到了offer。在新的公司从事软件测试工作已经将近半年有余&…

深信服数据中心管理系统 XXE漏洞复现

0x01 产品简介 深信服数据中心管理系统DC为AC的外置数据中心&#xff0c;主要用于海量日志数据的异地扩展备份管理&#xff0c;多条件组合的高效查询&#xff0c;统计和趋势报表生成&#xff0c;设备运行状态监控等功能。 0x02 漏洞概述 深信服数据中心管理系统DC存在XML外部实…

WPS-0DAY-20230809的分析和利用复现

WPS-0DAY-20230809的分析和初步复现 一、漏洞学习1、本地复现环境过程 2、代码解析1.htmlexp.py 3、通过修改shellcode拿shell曲折的学习msf生成sc 二、疑点1、问题2、我的测试测试方法测试结果 一、漏洞学习 强调&#xff1a;以下内容仅供学习和测试&#xff0c;一切行为均在…

Keil开发STM32单片机项目的三种方式

STM32单片机相比51单片机&#xff0c;内部结构复杂很多&#xff0c;因此直接对底层寄存器编码&#xff0c;相对复杂&#xff0c;这个需要我们了解芯片手册&#xff0c;对于复杂项目&#xff0c;这些操作可能需要反复编写&#xff0c;因此出现了标准库的方式&#xff0c;对寄存器…

ES中倒排索引机制

在ES的倒排索引机制中有四个重要的名词&#xff1a;Term、Term Dictionary、Term Index、Posting List。 Term&#xff08;词条&#xff09;&#xff1a;词条是索引里面最小的存储和查询单元。一段文本经过分析器分析以后就会输出一串词条。一般来说英文语境中词条是一个单词&a…

Docker容器与虚拟化技术:Docker资源控制、数据管理

目录 一、理论 1.资源控制 2.Docker数据管理 二、实验 1.Docker资源控制 2.Docker数据管理 三、问题 1.docker容器故障导致大量日志集满&#xff0c;造成磁盘空间满 2、当日志占满之后如何处理 四、总结 一、理论 1.资源控制 (1) CPU 资源控制 cgroups&#xff0…

Java Vue Uniapp MES生产执行管理系统

本MES系统是一款B/S结构、通用的生产执行管理系统&#xff0c;功能强大&#xff01; 系统基于多年离散智造行业的业务经验组建&#xff0c;主要目的是为国内离散制造业的中小企业提供一个专业化、通用性、低成本的MES系统解决方案。 联系作者获取

Linux(进程控制)

进程控制 进程创建fork函数初识fork函数返回值写时拷贝fork常规用法fork调用失败的原因 进程终止进程退出码进程常见退出方法 进程等待进程等待必要性获取子进程status进程等待的方法 阻塞等待与非阻塞等待阻塞等待非阻塞等待 进程替换替换原理替换函数函数解释命名理解 做一个…

re学习(32)【绿城杯2021】babyvxworks(浅谈花指令)

链接&#xff1a;https://pan.baidu.com/s/1msA5EY_7hoYGBEema7nWwA 提取码&#xff1a;b9xf wp:首先找不到main函数&#xff0c;然后寻找特殊字符串&#xff0c; 交叉引用 反汇编 主函数在sub_3D9当中&#xff0c;但是IDA分析错了 分析错误后&#xff0c;删除函数 创建函数 操…

【Linux】多线程1——线程概念与线程控制

文章目录 1. 线程概念什么是线程Linux中的线程线程的优点线程的缺点线程的独立资源和共享资源 2. 线程控制Linux的pthread库用户级线程 &#x1f4dd; 个人主页 &#xff1a;超人不会飞)&#x1f4d1; 本文收录专栏&#xff1a;《Linux》&#x1f4ad; 如果本文对您有帮助&…

无脑入门pytorch系列(三)—— nn.Linear

本系列教程适用于没有任何pytorch的同学&#xff08;简单的python语法还是要的&#xff09;&#xff0c;从代码的表层出发挖掘代码的深层含义&#xff0c;理解具体的意思和内涵。pytorch的很多函数看着非常简单&#xff0c;但是其中包含了很多内容&#xff0c;不了解其中的意思…

SpringBoot复习:(46)全局的bean懒加载是怎么实现的?

在application.properties中配置&#xff1a; spring.main.lazy-initializationtrue在运行SpringApplication的run方法时&#xff0c;代码如下&#xff1a; 其中调用了prepareContext,prepareContext代码如下&#xff1a; 当在配置文件中配置了spring.main.lazy-initializat…

JavaScript实现在线Excel的附件上传与下载

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 在本地使用Excel时&#xff0c;经常会有需要在Excel中添加一些附件文件的需求&am…

Clickhouse基于文件复制写入

背景 目前clickhouse社区对于数据的写入主要基于文件本地表、分布式表方式为主&#xff0c;但缺乏大批量快速写入场景下的数据写入方式&#xff0c;本文提供了一种基于clickhouse local 客户端工具分布式处理hdfs数据表文件&#xff0c;并将clickhouse以文件复制的方式完成写入…

开源低代码平台Openblocks

网友 HankMeng 想看低代码工具&#xff0c;正好手上有一个&#xff1b; 什么是 Openblocks &#xff1f; Openblocks 是一个开发人员友好的开源低代码平台&#xff0c;可在几分钟内构建内部应用程序。 传统上&#xff0c;构建内部应用程序需要复杂的前端和后端交互&#xff0c;…

如何保证微信小游戏存档不丢失?

引言 微信小游戏的兴起为玩家提供了一个轻松便捷的娱乐方式&#xff0c;然而&#xff0c;存档丢失问题一直以来都是开发者和玩家关注的焦点。为了确保玩家的游戏体验和投入能够得到充分的保障&#xff0c;开发团队需要采取一系列方法来保障微信小游戏存档不丢失。本文将介绍一…

word之插入尾注+快速回到刚才编辑的地方

1-插入尾注 在编辑文档时&#xff0c;经常需要对一段话插入一段描述或者附件链接等&#xff0c;使用脚注经常因占用篇幅较大导致文档页面内容杂乱&#xff0c;这事可以使用快捷键 ControlaltD 即可在 整个行文的末尾插入尾注&#xff0c;这样文章整体干净整洁&#xff0c;需…

【枚举边+MST+组合计数】CF1857G

Problem - 1857G - Codeforces 题意&#xff1a; 思路&#xff1a; 首先观察一下样例&#xff1a; 可以发现对于每一对点&#xff0c;贡献是 s - 这对点对应的环的最大边 1 那么这样就有了 n^2 的做法 然后&#xff0c;根据惯用套路&#xff0c;枚举树上的点对问题可以转…

Prometheus的搭建与使用

一、安装Prometheus 官网下载地址&#xff1a;Download | Prometheus 解压&#xff1a;tar -zxvf prometheus-2.19.2.linux-amd64.tar.gz重命名&#xff1a; mv prometheus-2.19.2.linux-amd64 /home/prometheus进入对应目录&#xff1a; cd /home/prometheus查看配置文件&am…

OpenCV-Python中的图像处理-傅里叶变换

OpenCV-Python中的图像处理-傅里叶变换 傅里叶变换Numpy中的傅里叶变换Numpy中的傅里叶逆变换OpenCV中的傅里叶变换OpenCV中的傅里叶逆变换 DFT的性能优化不同滤波算子傅里叶变换对比 傅里叶变换 傅里叶变换经常被用来分析不同滤波器的频率特性。我们可以使用 2D 离散傅里叶变…