C++结构体

结构体定义

三种声明方式
1 struct Student s1
2 struct Student s2={…}
3在定义结构体时,顺便创建结构体变量(不建议用)

// 结构体.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
using namespace std;//自定义数据类型,一些类型集合组成的一个类型
// 语法 struct
//1.创建学生数据类型:学生报错(姓名,年龄,分数)
struct Student
{//成员列表//姓名string name;//年龄int age;//分数int score;
}s3;
//2.通过学生类型创建具体学生int main()
{//2.1 struct Student s1struct Student s1;//给s1属性赋值,通过.访问结构体变量中的属性s1.name = "张三";s1.age = 18;s1.score = 100;cout << "姓名:    " << s1.name << "年龄:    " << s1.age << "分数: " << s1.score << endl;//2.2 struct Student s2={...}struct Student s2 = {"李四",19,80 };cout << "姓名:    " << s2.name << "年龄:    " << s2.age << "分数: " << s2.score << endl;//2.3在定义结构体时,顺便创建结构体变量(不建议用)s3.name = "王五";s3.age = 20;s3.score = 60;
}

结构体数组

// 结构体.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
using namespace std;//结构体数组
//1.定义结构体
struct Student
{//姓名string name;//年龄int age;//分数int score;
};int main()
{//2.创建结构体数组struct Student stuArray[3] = {{"张三",18,100},{"李四",28,99},{"王五",38,66}};//3.给结构体数组中的元素赋值stuArray[2].name = "赵六";stuArray[2].age = 80;stuArray[2].score = 60;//4.遍历结构体数组for (int i = 0; i < 3; i++) {cout << "姓名:" << stuArray[i].name << " 年龄:" << stuArray[i].age << " 分数" << stuArray[i].score << endl;}
}

结构体指针

// 结构体.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
using namespace std;//1.定义结构体
struct Student
{//姓名string name;//年龄int age;//分数int score;
};int main()
{//2.创建学生结构体变量struct Student s ={"张三",18,100};//3.通过指针指向结构体变量struct Student* p = &s;//4.通过指针访问结构体变量中的数据//通过结构体指针,访问结构体中的属性,需要利用'->'cout << " 姓名: " << p->name << " 年龄: " << p->age << " 分数: " << p->score << endl;
}

结构体嵌套结构体

// 结构体.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
using namespace std;//定义学生结构体
struct student
{//姓名string name;//年龄int age;//分数int score;
};//定义老师结构体
struct teacher
{int id;		//教师编号string name;//教师姓名int age;	//年龄struct student stu;//辅导的学生
};int main()
{teacher t;t.id = 10000;t.name = "老王";t.age = 50;t.stu.name = "小王";t.stu.age = 20;t.stu.score = 60;
}

结构体做函数参数

// 结构体.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
using namespace std;//定义学生结构体
struct student
{//姓名string name;//年龄int age;//分数int score;
};//值传递
void printStudent1(struct student s) {s.age = 100;cout << "子函数中 姓名: " << s.name << " 年龄: " << s.age << " 分数: " << s.score << endl;
}//地址传递
void printStudent2(struct student * s) {s->age = 200;cout << "子函数中 姓名: " << s->name << " 年龄: " << s->age << " 分数: " << s->score << endl;
}int main()
{//结构体做函数参数//将学生传入到一个参数中,打印学生身上的所有信息//创建结构体变量struct student s;s.name = "张三";s.age = 20;s.score = 85;printStudent1(s);printStudent2(&s);
}

结构体中使用const

将函数中的形参改为指针,可以减少内存空间,而且不会复制新的副本出来

// 结构体.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
using namespace std;//定义学生结构体
struct student
{//姓名string name;//年龄int age;//分数int score;
};//将函数中的形参改为指针,可以减少内存空间,而且不会复制新的副本出来
void printStudents(const struct student * s) {//s->age = 100;	加上const后,一旦有修改的操作就会报错,可以防止误操作cout << "姓名: " << s->name << " 年龄: " << s->age << " 分数: " << s->score << endl;
}int main()
{//结构体做函数参数//将学生传入到一个参数中,打印学生身上的所有信息//创建结构体变量struct student s = {"张三",15,71};printStudents(&s);
}

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

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

相关文章

《1w实盘and大盘基金预测 day25》

上贴整体预测还行&#xff0c;第三点、第四点完全符合&#xff0c;最低3042&#xff0c;我预测3038 昨日预测&#xff1a; 3038-3064-3074-3090 低开拉升&#xff0c;冲高回落 大盘继续震荡&#xff1f;收3074附近 中字头等股票回调&#xff1f;大跌收3038附近 科技股有继续回…

Ubuntu-18.04本地化部署Rustdesk服务器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、配置防火墙二、安装三大件1.下载三大件2.安装三大件 三、安装客户端1.下载客户端1.Windows2.Linux 四、配置客户端连接服务器五、总结 前言 如果你是想数据…

JEECG表格选中状态怎么去掉

官网代码&#xff08;在取消选中状态的时候不生效&#xff09; rowSelection() {return {onChange: (selectedRowKeys, selectedRows) > {console.log(selectedRowKeys: ${selectedRowKeys}, selectedRows: , selectedRows);},getCheckboxProps: record > ({props: {disa…

数据结构系列-堆排序

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 昨天我们实现的堆的搭建&#xff0c;我们今天实现以下堆的排序&#xff0c; 堆的排序的最大的优点就是提高的效率&#xff0c;减小了时间复杂度&#xff0c;在这个里面我们有一个…

面试十八、容器适配器

容器适配器是一种特殊类型的容器&#xff0c;它们提供了一种不同于常规容器的接口和行为。容器适配器通常是建立在其他容器之上&#xff0c;通过改变接口或添加限制来满足特定的需求或解决特定的问题。 在 C 中&#xff0c;标准库提供了三种常见的容器适配器&#xff1a; 栈&am…

Web3钱包开发获取测试币-Polygon Mumbai(一)

Web3钱包开发获取测试币-Polygon Mumbai(一) 由于主网区块链上的智能合约需要真正的代币&#xff0c;而部署和使用需要花费真金白银&#xff0c;因此测试网络为 Web3 开发人员提供了一个测试环境&#xff0c;用于部署和测试他们的智能合约&#xff0c;以识别和修复在将智能合约…

边缘渲染是什么意思?属于云渲染吗?

边缘渲染&#xff0c;即利用靠近数据源或用户的边缘计算资源进行渲染&#xff0c;以减少数据传输延迟并提升处理速度。这种方式虽然基于云技术&#xff0c;但更注重数据处理的地理位置优化&#xff0c;与传统的云渲染有所不同。 一、边缘渲染属于什么意思? 边缘渲染是一种基于…

周鸿祎和雷军、马化腾相逢一笑泯恩仇

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 马云竟然没有到场&#xff0c;真是遗憾! 前两天工信部和互联网协会联合举办的中国互联网三十周年座谈会上。周鸿祎、雷军、马化腾相逢一笑泯恩仇。 第一条视频&#xff1a; 周鸿祎和马化腾握手言欢&#xff0c…

一道有意思的面试题

面试过程中没有想到合适的数据结构&#xff0c;想了半天&#xff0c;构思没有实践落地。 也是听错了&#xff0c;以为三道题都要做&#xff0c;做出来了两道&#xff0c;这道死活没落地成功。 结果&#xff0c;三道题里面任选一道就行。。。。 好吧 题目&#xff1a;给定一个…

将组件 赋值给变量li 想拿到 组件的html页面结构 但是 打印出来的是 文件路径 该如何实现呢?

需求 import { ref } from vue; import refrigerationRight from /views/bim3D/components/right/refrigerationRight.vue const liref({lis:refrigerationRight }) const refrigerationclick()>{console.log(li) }##方法 import { createApp } from vue; import refriger…

对接浦发银行支付(八)-- 对账接口

一、背景 本文不是要讲述支付服务的对账模块具体怎么做&#xff0c;仅是介绍如何对接浦发银行的对账接口。 也就是说&#xff0c;本文限读取到对账文件的内容&#xff0c;不会进一步去讲述如何与支付平台进行对账。 如果要获取商户的对账单&#xff0c;需要遵循以下步骤&…

【从浅学到熟知Linux】进程间通信之匿名管道方式(进程间通信方式汇总、匿名管道的创建、匿名管道实现进程池详解)

&#x1f3e0;关于专栏&#xff1a;Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。 &#x1f3af;每天努力一点点&#xff0c;技术变化看得见 文章目录 进程间通信介绍如何实现进程间通信进程间通信分类 管道通信方式什么是管道匿名管道pipe匿名管道读写规则管…

PMP®证书适合哪些岗位?哪些人适合报考?

PMP无处不在&#xff0c;不受岗位限制&#xff0c;因为项目管理思维都是相通的&#xff0c;就算你不想从事项目管理工作&#xff0c;也能应用到其他领域内。 当时报考PMP的人群中某些行业和岗位相对而言会多一些&#xff0c;本文就给大家介绍一下哪些行业、岗位的人群适合报考…

echarts折线图默认不显示数据圆点,鼠标划上之后折线图才显示圆点

只需要设置showSymbol为false就可以了&#xff0c;表示只在 tooltip hover 的时候显示。 代码如下&#xff1a; option {tooltip: {trigger: axis},xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [150, 230, 224…

Acrobat Pro DC 2021:强大的PDF编辑软件

Acrobat Pro DC 2021是Adobe公司推出的一款全面而强大的PDF编辑软件&#xff0c;凭借其卓越的性能和丰富的功能&#xff0c;成为了PDF编辑领域的领军者。 Acrobat Pro DC 2021中文激活版下载 这款软件具备全面的PDF编辑功能&#xff0c;包括文本编辑、图片处理、页面组织等&…

单例模式与反射创建对象

单例模式 饿汉式单例模式 单例模式&#xff0c;就是自己先把自己创建了&#xff0c;整个程序都只有这一个实例&#xff0c;别人都没有办法创建实例&#xff0c;因为他的构造方法是private的 一次性把全部都创建了 public class HungryMan {private static int [][] s new …

Debezium分享系列之:部署Debezium采集Oracle数据库的详细步骤

Debezium分享系列之:部署Debezium采集Oracle数据库的详细步骤 一、部署Debezium Oracle连接器二、Debezium Oracle 连接器配置三、添加连接器配置四、可插拔数据库与不可插拔数据库一、部署Debezium Oracle连接器 部署的详细步骤可以参考博主这篇技术文章: Debezium系列之:…

接口压力测试 jmeter--增强篇(二)

前期准备 1. JMeter的插件的安装 下载Jmeter Plugins Manager对插件进行管理 &#xff08;1&#xff09;下载地址&#xff1a;https://jmeter-plugins.org/install/Install/ &#xff08;2&#xff09;下载后&#xff0c;将jar包放到jmeter包目录下/lib/ext目录下 &#xff0…

CUDA编程---线程束洗牌指令

从Kepler系列的GPU&#xff08;计算能力为3.0或更高&#xff09;开始&#xff0c;洗牌指令&#xff08;shuffle instruction&#xff09;作为一种机制被加入其中&#xff0c;只要两个线程在相同的线程束中&#xff0c;那么就允许这两个线程直接读取另一个线程的寄存器。 洗牌指…

清华大学:序列推荐模型稳定性飙升,STDP框架惊艳登场

获取本文论文原文PDF&#xff0c;请公众号留言&#xff1a;论文解读 引言&#xff1a;在线平台推荐系统的挑战与机遇 在线平台已成为我们日常生活中不可或缺的一部分&#xff0c;它们提供了丰富多样的商品和服务。然而&#xff0c;如何为用户推荐感兴趣的项目仍然是一个挑战。…