C++总结笔记(三)—— 结构体

一、概念

结构体是一种可以自定义数据类型的类型格式,一般用struct关键字进行定义。

//创建食物的结构体
struct Food
{//属性名string name;		//名字int Price;			//价格
};

结构体有三种定义变量的方法。

1.1 定义结构体后再声明变量,然后在对变量的属性赋值

int main()
{Food HuiMian;HuiMian.name = "烩面";HuiMian.Price = 10;cout << HuiMian.name << endl;cout << HuiMian.Price << endl;
}

1.2 定义结构体后再声明变量,同时对变量的属性赋值

int main()
{Food HuiMian = { "烩面" ,10};cout << HuiMian.name << endl;cout << HuiMian.Price << endl;
}

1.3 定义结构体时声明变量

//创建食物的结构体
struct Food
{//属性名string name;		//名字int Price;			//价格
}HuiMian;
int main()
{HuiMian.name= "烩面";HuiMian.Price = 10;cout << HuiMian.name << endl;cout << HuiMian.Price << endl;
}

二、程序应用

2.1 结构体数组

结构体和数组进行结合,定义形式为:struct 结构体名 数组名[元素个数]{}

int main()
{Food Arry[2]{{"烩面",10},{"照烧鸡腿饭", 20}};//物价涨了Arry[0].Price = 12;Arry[1].Price = 30;
}

2.2 结构体指针

结构体指针在学习数据结构的时候会经常遇到,需要重点掌握,用指针名 + ->来进行访问结构体成员。

int main()
{Food Arry[2]{{"烩面",10},{"照烧鸡腿饭", 30}};Arry[0].Price = 12;Food* p = &Arry[0];cout << p << endl;cout << p->name <<"的价格是:"<< p->Price << endl;
}

2.3 结构体嵌套

//定义食材的结构体
struct ShiCai
{string name;int Price;
};//创建食物的结构体
struct Food
{//属性名string name;		//名字int Price;			//价格struct ShiCai shicai;
};
int main()
{Food Arry[2]{{"烩面",10,{"面条",1}},{"照烧鸡腿饭", 30,{"鸡腿",5}}};Arry[0].Price = 12;Food* p = &Arry[0];cout << p << endl;cout << p->name <<"的价格是:"<< p->Price <<"  包括食材:" <<p->shicai.name <<endl;
}
012FFC3C
烩面的价格是:12  包括食材:面条

2.4 结构体与函数

地址传递,可以更改结构体的值,反之,值传递不能更改:

void Print(Food *p)
{p->name = "红烧鱼";cout << p->name << "的价格是:" << p->Price << "  包括食材:" << p->shicai.name << endl;
}
int main()
{Food Arry[2]{{"烩面",10,{"面条",1}},{"照烧鸡腿饭", 30,{"鸡腿",5}}};Arry[0].Price = 12;Print(&Arry[0]);cout << Arry[0].name << endl;
}
红烧鱼的价格是:12  包括食材:面条
红烧鱼

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

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

相关文章

[轻微]WEB服务器启用了OPTIONS方法/如何禁止DELETE,PUT,OPTIONS等协议访问应用程序/tomcat下禁用不安全的http方法...

使用了360网站安全检测 查到有OPTIONS方法 百度了下 https://my.oschina.net/maliang0130/blog/338725 找到这个方法奈何http.conf 找不到无论在tomcat目录里还是linux路径下的/usr/etc或者apache2 最后通过开源中国找到 第一步&#xff1a;修改应用程序的web.xml文件的协议 &l…

MVC 事物同时保存,更新数据库

本人小白一枚&#xff0c;第一次写博&#xff0c;主要用作笔记&#xff0c;怕以后忘记了&#xff0c;大神尙可路过&#xff0c;也可多多指教 事物用在同时保存更新数据时&#xff0c;及只要在事物块的范围内&#xff0c;有一个操作出错则事物块所有更新&#xff0c;保存等操作都…

【图像处理】——正装照换底色Python

import cv2 import numpy as np # 读取照片 img=cv2.imread("personalPic.jpg")# 图像缩放 img = cv2.resize(img,None,fx=0.3,fy=0.3) rows,cols,channels = img.shape print(rows,cols,channels)# img_medianBlur=cv2.medianBlur(img,3) # 中值滤波,必须是大于1的奇…

Halcon例程详解(植物测量) —— measure_plant.hdev

文章目录 前言一、过程1.1 筛选ROI区域1.2 分割1.3 三维建模与仿射变换1.4 确定叶子的角度分布和高度1.5 确定叶子的面积和树干的直径1.6 对叶子的角度进行分析二、例程详解2.1 筛选ROI区域2.2 分割2.3 三维建模与仿射变换2.4 确定叶子的角度和高度2.5 确定叶子的面积和树干的直…

keil5中文乱码的解决

keil5 复制出来的中文显示乱码&#xff0c;该如何解决&#xff1f; 点击Edit - Configuration &#xff0c;进入编辑器设置&#xff1a; 点击ok &#xff0c;就可以了转载于:https://www.cnblogs.com/alan666/p/8312100.html

spark RDD iterator中sparkEnv功能 -- (视频笔记)

sparkEnv是spark环境变量 1、可以从其中get 缓存 2、为master workder driver 管理和保存运行时对象。 3、excutorid &#xff0c;excutor 一种为driver类型&#xff0c;一种具体处理task 内部有线程池的excutor 4、actorSystem &#xff0c;如果运行在driver 则为spark driver…

【图像处理】——Python实现几何变换(自定义+opencv库)

理论知识:参考https://blog.csdn.net/on2way/article/details/40460675 Python调用opencv函数参考:https://blog.csdn.net/on2way/article/details/46801063 一、引自《数字图像处理》的基础知识汇总 这个很重要!!!这里需要注意的是反向映射和前向映射的区别,反…

Go语言学习资料整理

整理网上找到的Golang语言学习资料基础基础教程 书籍在线版Go 指南-A Tour of GoGo语言圣经&#xff08;中文版&#xff09;Effective Go中文版Go Web编程 build-web-application-with-golangGo入门指南 The Way to Go《The Way to Go》中文译本&#xff0c;中文正式名《Go入门…

C++总结笔记(四)—— 堆栈区域划分与引用实例解析

文章目录前言&#x1f600;一、概念1.1. 内存分区1.1.1 堆区1.1.2 栈区1.1.3 程序代码区1.1.4 全局/静态存储区1.1.5 常量存储区1.2. 引用二、程序示例总结前言&#x1f600; 在C的内存管理中&#xff0c;堆区和栈区是一个非常重要的概念&#xff0c;理解堆栈的相关知识&#…

学习Android MediaPlayer

Android Media Playback 原文 The Android multimedia framework includes support for playing variety of common media types, so that you can easily integrate audio, video and images into your applications. You can play audio or video from media files stored in…

spark2.0.1 安装配置

1. 官网下载 wget http://d3kbcqa49mib13.cloudfront.net/spark-2.0.1-bin-hadoop2.7.tgz 2. 解压 tar -zxvf spark-2.0.1-bin-hadoop2.7.tgz ln -s spark-2.0.1-bin-hadoop2.7 spark2 3. 环境变量 vi /etc/profile #Spark 2.0.1export SPARK_HOME/usr/local/spark2export PATH…

Spring Cloud各组件超时

Ribbon的超时 全局设置&#xff1a; ribbon:ReadTimeout: 60000ConnectTimeout: 60000局部设置&#xff1a; service-id:ribbon:ReadTimeout: 1000ConnectTimeout: 1000其中&#xff0c;service-id 是Ribbon所使用的虚拟主机名&#xff0c;一般和Eureka Server上注册的服务名称…

【图像处理】——遍历图像所有像素的方法(for 循环和np.where遍历)应用在模板制作

目录 具体np.where的用法可以参见: 其他遍历图像的所有像素的方法: 模板制作流程 Python代码

C++总结笔记(五)——构造函数和析构函数

文章目录前言一、基本概念1 构造函数2 析构函数二、示例1. 构造函数和析构函数的简单使用2. 拷贝构造函数的调用3. 浅拷贝和深拷贝前言 本文讲述了构造函数和析构函数的概念以及对应的示例&#xff0c;以便加深理解。 一、基本概念 1 构造函数 构造函数用于初始化类的对象&a…

LINUX 更新

sudo apt-get dist-upgrade,更新所有的软件转载于:https://www.cnblogs.com/jackieron/p/5997805.html

python实战===如何优雅的打飞机

这是一个打飞机的游戏&#xff0c;结构如下&#xff1a; 其中images中包含的素材为 命名为alien.png 命名为ship.png 游戏效果运行是这样的&#xff1a; 敌军&#xff0c;也就是体型稍微大点的&#xff0c;在上方左右移动&#xff0c;并且有规律向下移动。我军目标&#xff0c;…

【图像处理】——上采样、下采样、在模板匹配中的金字塔加速策略

目录 1、下采样 Python自带函数 自定义函数 Python实现下采样 2、上采样 Python自带函数 自定义函数<

C++总结笔记(六)——友元

文章目录前言一、基本概念二、程序示例1.全局函数调用私有成员2. 外部类调用私有成员3. 外部类的成员函数调用私有成员总结前言 一、基本概念 友元是C中为了方便类外的类或者函数访问类内私有成员而定义的一种特殊语法&#xff0c;用friend关键字进行修饰。 二、程序示例 友…

Java默认类型,类型转换,常量与变量笔记

默认类型&#xff1a; 在java里整数默认是int类型&#xff0c;小数默认是double类型&#xff0c;单个字符默认是char类型&#xff0c;true、false自然默认的是boolean类型&#xff0c;字符串默认的是String类型。 变量和常量类型转换&#xff1a; 因为有默认类型&#xff0c;在…

【图像处理】——Python实现灰度特征提取

目录 1、灰度特征 2、Python代码 1、灰度特征 2、Python代码 import cv2 import numpy as npdef gray_features(img):hist = cv2.calcHist([img],[0],None,[256],[0,255])#得到全局直方图统计数据