当前位置: 首页 > news >正文

c小白勇闯结构体!!!!

目录

1.结构体类型的声明

1.结构的基础

2.结构体的声明

3.结构体成员的类型

4结构体变量的定义和初始化

2.结构体成员的访问

3.结构体传参


1.结构体类型的声明

1.结构的基础

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量

结构体变量的创建

int main()
{struct jiegt p1;//这种方式创建的结构体变量为局部变量return 0;	
}

2.结构体的声明

ps:声明号的结构体相当于图纸,并不占用内存的空间,仅当结构体的变量创建后才占用空间

//结构体的声明
struct jiegt//jiegt为类型名
{char name[10];//一个汉字占两个字符char sex[10];//sex与name称为成员变量
}p1,p2;//在大括号外定义的结构体变量为全局变量
-----------------------------------------------

3.结构体成员的类型

结构体的类型可以是标量,数组,指针,甚至是其他结构体

//结构体中出现其他结构体
struct jiegt
{char name[10];char sex[10];
};
struct St
{struct jiegt p;int num;	};

4结构体变量的定义和初始化

ps:浮点数在内存中不能精确保存

#include<stdio.h>
struct jiegt
{char name[10];char sex[10];int high; 
};
struct St
{struct jiegt p;int num;	};
int main()
{struct jiegt p1={"张三","男",155};//结构体初始化struct St p2={{"李四","女",166},666};//结构体嵌套初始化printf("%s %s %d\n",p1.name, p1.sex, p1.high);printf("%s %s %d %d\n",p2.p.name, p2.p.sex, p2.p.high, p2.num);return 0;
}
张三 男 155
李四 女 166 666--------------------------------
Process exited after 0.09574 seconds with return value 0
请按任意键继续. . .

2.结构体成员的访问

//结构体成员的两种访问方法
#include<stdio.h>
struct jiegt
{char name[10];char sex[10];int high; 
};
struct St
{struct jiegt p;int num;	};void print1(struct jiegt* pp)//   结构体指针->成员变量{printf("%s %s %d\n",pp->name,pp->sex,pp->high);}void print2(struct jiegt pp2)//   结构体变量.成员变量{printf("%s %s %d\n",pp2.name,pp2.sex,pp2.high);}
int main()
{struct jiegt p1={"张三","男",155};struct St p2={{"李四","女",166},666};printf("%s %s %d\n",p1.name, p1.sex, p1.high);printf("%s %s %d %d\n",p2.p.name, p2.p.sex, p2.p.high, p2.num);print1(&p1);print2(p1);return 0;
}

3.结构体传参

//两种结构体的传参方式
void print1(struct jiegt* pp)//  printf1函数中也要创建与p1结构体一样大的空间,因为形参时实参的临时拷贝,若结构体比较大则会造成空间浪费{printf("%s %s %d\n",pp->name,pp->sex,pp->high);}
void print2(struct jiegt pp2)//传递的是地址,调用函数进行打印时,是通过存储的地址找到数据再打印{printf("%s %s %d\n",pp2.name,pp2.sex,pp2.high);}
int main()
{struct jiegt p1={"张三","男",155};struct St p2={{"李四","女",166},666};printf("%s %s %d\n",p1.name, p1.sex, p1.high);printf("%s %s %d %d\n",p2.p.name, p2.p.sex, p2.p.high, p2.num);print1(&p1);//print2(p1);//return 0;
}

可知:函数传参的时侯,参数时需要压栈的

如果传递一个结构体对象的时候,结构体过大,参数压栈的系统开销比较大,所以会导致性能的下降

所以结构体传参的时候要传结构体的地址

相关文章:

c小白勇闯结构体!!!!

目录 1.结构体类型的声明 1.结构的基础 2.结构体的声明 3.结构体成员的类型 4结构体变量的定义和初始化 2.结构体成员的访问 3.结构体传参 1.结构体类型的声明 1.结构的基础 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量 结构体变量的创…...

【DevOps核心理念基础】3. 敏捷开发最佳实践

一、敏捷开发最佳实践 1.1 项目管理 1.2 需求管理 1.3 技术架构 1.4 技术开发 1.5 测试 二、敏捷开发最佳实践 2.1 敏捷开发的执行细节 三、全面的DevOps工具链 四、版本控制和协作开发工具 4.1 集中式版本控制工具 4.2 分布式版本控制工具 一、敏捷开发最佳实践 …...

二进制、数位dp:0912T3

考虑题目转化&#xff0c;二进制下满足 i ⊆ j , ( i x ) ⊆ ( j y ) i\subseteq j,(ix)\subseteq (jy) i⊆j,(ix)⊆(jy) 这显然是个数位dp形式 考虑枚举每一位与进位&#xff0c; d p k , p 1 , p 2 dp_{k,p_1,p_2} dpk,p1​,p2​​ 表示第 k − 1 k-1 k−1 位向第 k k…...

Java基于SpringBoot+Vue的 4S店车辆管理系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1 简介2 技术栈3 功能总览4 系统设计4.1 系统设计主要功能4.2 数据库设计4.2.1 数据库设计规范4.2…...

助力智能化公路养护,基于YOLOv5s集成SPD-BIFPN-SE开发构建公路开裂检测识别系统

在前文中我们尝试构建了在隧道、涵洞尝尽下的自动智能化养护巡查相关的模型&#xff0c;进行了实地测试评估&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 《基于轻量级YOLOv5s开发构建隧道基建裂痕、脱落等缺陷问题检测系统》 本文的想法是相近的&#xff0c;核心…...

C++--day5

实现一个图形类&#xff08;Shape&#xff09;&#xff0c;包含受保护成员属性&#xff1a;周长、面积&#xff0c; 公共成员函数&#xff1a;特殊成员函数书写 定义一个圆形类&#xff08;Circle&#xff09;&#xff0c;继承自图形类&#xff0c;包含私有属性&#xff1a;半…...

Django应用部署实战:从开发到生产,全程解析

部署架构图 版本说明 Centos 7.4 Python 3.6.4 Django 2.0.2 Channels 2.0.0 MySql 5.7 uWSGI Nginx 1.12.2 部署前 1、更新系统环境 yum install epel-release 2、安装所有的开发工具包 yum groupinstall -y “Development tools” 一、安装python 3.6.4 1、下载 cd /usr/…...

群晖NAS如何在内网部署HTTPS服务让浏览器信任证书

前言 最近在折腾内部部署Web服务。通过Vue实现一个H5的内部的管理服务。但在实际部署过程中由于种种原因&#xff0c;必须部署成Https服务。但在部署成Https服务后&#xff0c;由于没有HTTPS证书&#xff0c;每次进入页面都会被浏览器拦截。使用起来非常不便。于是开始各种Goo…...

crAPI靶场学习记录

靶场搭建 [靶场下载地址](我fork了一份) docker安装&#xff0c;笔者是用的wsldocker. [lab0:**初始账户 **] 注册一个账户&#xff0c;邮箱为[APIqq.com]&#xff0c;密码为Admin123 登陆后访问对应IP的8025端口&#xff0c;接收邮件获取车辆信息。 [lab1:**访问其它用户车…...

知识图谱实战应用28-基于py2neo的ICD-11疾病分类的知识图谱的查询与问答实战应用

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用28-基于py2neo的ICD-11疾病分类的知识图谱的查询与问答实战应用。使用基于py2neo的ICD-11疾病分类知识图谱,我们能够像探索一座生物医学宇宙般,穿梭在各种疾病之间。这个神奇的图谱可以帮助我们揭示各种疾病之间复杂而…...

20.Xaml GroupBox控件 ---->带标题的内容控件

1.运行效果 2.运行源码 a.Xaml源码 <Window x:Class="testView.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mic…...

基于CycleGAN的山水风格画迁移

基于CycleGAN的山水风格画迁移 1、简介 1.1 研究背景及意义 绘画是人类重要的一种艺术形式&#xff0c;其中中国的山水画源远流长&#xff0c;具有丰富的美学内涵&#xff0c;沉淀着中国人的情思。游山玩水的大陆文化意识&#xff0c;以山为德、水为性的内在修为意识&#x…...

​@Cacheable 注解​

1. 功能说明 Cacheable 注解在方法上&#xff0c;表示该方法的返回结果是可以缓存的。也就是说&#xff0c;该方法的返回结果会放在缓存中&#xff0c;以便于以后使用相同的参数调用该方法时&#xff0c;会返回缓存中的值&#xff0c;而不会实际执行该方法。 注意&#xff0c;这…...

vue3+ts项目打包后的本地访问

注意&#xff1a;打包之后不可直接点击html访问&#xff0c;需要给项目安装本地服务&#xff01; 1、安装servenpm i -g serve 2、打包项目npm run build 生成dist文件夹 3、本地访问serve dist 运行service dist之后的控制台 可复制下方的地址运行打包后的项目&#xff0c;运行…...

探索程序员需要掌握的算法?

文章目录 一&#xff1a;引言二&#xff1a;常见算法介绍三&#xff1a;重点算法总结 &#x1f389;欢迎来到数据结构学习专栏~探索程序员需要掌握的算法&#xff1f; ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;该系列文章…...

性能测试 —— Jmeter定时器

固定定时器 如果你需要让每个线程在请求之前按相同的指定时间停顿&#xff0c;那么可以使用这个定时器&#xff1b;需要注意的是&#xff0c;固定定时器的延时不会计入单个sampler的响应时间&#xff0c;但会计入事务控制器的时间 1、使用固定定时器位置在http请求中&#xf…...

mp4视频太大怎么压缩?几种常见压缩方法

mp4视频太大怎么压缩&#xff1f;科技的飞速发展使得视频成为人们生活中不可或缺的一部分。然而&#xff0c;随着视频质量的不断提高&#xff0c;视频文件的大小也与日俱增&#xff0c;给我们的存储和传输带来了巨大的挑战和困扰。特别是MP4格式的视频&#xff0c;由于其出色的…...

论文复制ChatGPT按钮被发表,撤回后再曝多个类似案例;Midjourney 生成大师级的人像

&#x1f989; AI新闻 &#x1f680; 论文复制ChatGPT按钮被发表&#xff0c;撤回后再曝多个类似案例 摘要&#xff1a;一篇物理论文复制了ChatGPT按钮内容&#xff0c;经过两个月同行评审并在杂志上发表。这一现象被知名打假人发现后&#xff0c;发表商决定撤回该论文。此外…...

Python自动化测试 史上最全的进阶教程

Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。 随着时代的变革&#xff0c;也许在未来测试这个职位的需求会越来越少甚至消失&#xff0c;但是每一个组织&#xff0c;每一个客户对软件质量的要求是永远不…...

centos pip失效

在 CentOS 上安装和配置 pip3 可能需要以下步骤&#xff1a; 确保 Python 3 已正确安装&#xff1a;请确保您已经正确地安装了 Python 3。在 CentOS 上&#xff0c;Python 3 可能默认安装在 /usr/bin/python3 路径下。您可以通过运行以下命令来验证 Python 3 是否正确安装&…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

前端高频面试题2:浏览器/计算机网络

本专栏相关链接 前端高频面试题1&#xff1a;HTML/CSS 前端高频面试题2&#xff1a;浏览器/计算机网络 前端高频面试题3&#xff1a;JavaScript 1.什么是强缓存、协商缓存&#xff1f; 强缓存&#xff1a; 当浏览器请求资源时&#xff0c;首先检查本地缓存是否命中。如果命…...

32单片机——基本定时器

STM32F103有众多的定时器&#xff0c;其中包括2个基本定时器&#xff08;TIM6和TIM7&#xff09;、4个通用定时器&#xff08;TIM2~TIM5&#xff09;、2个高级控制定时器&#xff08;TIM1和TIM8&#xff09;&#xff0c;这些定时器彼此完全独立&#xff0c;不共享任何资源 1、定…...

高分辨率图像合成归一化流扩展

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 摘要 我们提出了STARFlow&#xff0c;一种基于归一化流的可扩展生成模型&#xff0c;它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流&#xff08;TARFlow&am…...

如何做好一份技术文档?从规划到实践的完整指南

如何做好一份技术文档&#xff1f;从规划到实践的完整指南 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 总有一行代码&#xff0c;能点亮万千星辰。 &#x1f50d; 在技术的宇宙中&#xff0c;我愿做永不停歇的探索者。 ✨ 用代码丈量世界&…...

NineData数据库DevOps功能全面支持百度智能云向量数据库 VectorDB,助力企业 AI 应用高效落地

NineData 的数据库 DevOps 解决方案已完成对百度智能云向量数据库 VectorDB 的全链路适配&#xff0c;成为国内首批提供 VectorDB 原生操作能力的服务商。此次合作聚焦 AI 开发核心场景&#xff0c;通过标准化 SQL 工作台与细粒度权限管控两大能力&#xff0c;助力企业安全高效…...