写在前面
- 面向初学者撰写专栏,个人原创的学习C/C++笔记(干货)
- 所作源代码输出内容为中文,便于理解
- 如有错误之处请各位读者指正
- 请读者评论回复、参与投票,反馈给作者,我会获得持续更新笔记干货的动力。
致粉丝:可以在阅读完我的文章后,自己尝试写一点原创心得(哪怕一行字也好)。
希望众(尽管717个🤣)粉丝多多支持、浏览、自我创作@_@
知识点概览
目录
写在前面
知识点概览
一.结构简介
二.结构的创建、描述、声明与赋值
1.关键字struct
2.描述自定义结构的格式(在main函数外)
3.给新的结构命名、赋值(一般在main函数内)
4.注意
三.结构的使用
结语
一.结构简介
- 可以存储多种类型数据的存储单元
- 结构可以自定义,定义类型后就可以创建这种类型的变量
- 创建结构的步骤 :先定义结构描述(描述标记结构中不同的数据类型),再按照描述来创建结构变量(结构数据对象)
二.结构的创建、描述、声明与赋值
1.关键字struct
struct 关键字告诉编译器要创建结构布局。
2.描述自定义结构的格式(在main函数外)
struct CandyBar//结构类型的变量CandyBar,描述包含的数据类型
{
char name[20];//char数组(字符串),品牌
double weight;//double数,重量
int calorie;//int整型,卡路里
};
//int main(){return 0;}
如上。
具体格式:
struct 自定义结构类型的名称
{
数据类型 名称;
数据类型 名称;
数据类型 名称;
...
};
//int main(){return 0;}
3.给新的结构命名、赋值(一般在main函数内)
//设置结构类型CandyBar名下的变量,给结构类型CandyBar名下的变量赋值,这时可以省略struct
CandyBar snack =
{
"Mocha Munch",//结构中描述的name类char数组
2.3, //结构中描述的weight类double浮点数
350 //结构中描述的calorie类int整数
};//snack是一个CandyBar类的struct结构
CandyBar snack2 = { "Baby Bear", 1.2, 280};//此处仅作展示,实际程序中不需要
//snack2是一个CandyBar类的struct结构
如上。
具体格式:
已经描述好的自定义结构的名称 要使用的新的该类型的变量 =
{
与前面描述类型相符合的具体数值或内容,
与前面描述类型相符合的具体数值或内容,
与前面描述类型相符合的具体数值或内容
...
};
4.注意:
- 结构是一种数据格式,struct是告诉编译器这是结构布局的关键字,struct 后面的是自定义的结构类型,不同的结构类型对应不同的类型名字。例如,结构 CandyBar 类型包含char、double、int等数据类型,而可以描述另一种结构,自定义名字,可以叫它 Meat ,里面可以包含char、float、long int等数据类型。所以,结构的数据格式在描述时统一,但是描述不同的类型有不同的类型名字,不同的结构类型包含不同的数值类型(int、float、char等) 。
如图:
简言之,struct叫结构,CandyBar、Meat叫做结构类型,snack和snack2是结构类型CandyBar的变量,name是结构类型CandyBar中第一种数值类型char的名字,"Mocha Munch"是结构类型CandyBar变量snack中的,char数组name的实际值,可以用snack.name来访问内容。 - 使用结构类型时,CandyBar名下有一个叫做snack的单元,存储对应实际数值,另一个叫做snack2的单元,存储相同类型格式但实际值不同的数值。
- 比喻:struct城市有2个小区,一个CandyBar小区,一个Meat小区,CandyBar小区有2栋单元楼,单元楼都有3层,不同楼层装修不同,但是每栋单元楼的1楼门牌号都叫name,2楼门牌号都叫weight,3楼门牌号都叫calorie。
- 1号单元楼snack一楼住着"Mocha Munch",二楼住着2.3,三楼住着350。
- 2号单元楼snack2一楼住着"Baby Bear",二楼住着1.2,三楼住着280。
- 其它单元楼没建好,没给名字。
Meat小区空荡荡,啥也没有。
- struct关键字在C++中描述结构时不能省略,但在结构已经描述好,对其中的具体内容对应赋值时可以省略。
- 使用已经描述好的结构类型时,要与描述中的数值类型一 一对应,并且每个都赋值。
- 给结构类型赋值时,必须要在结构类型名后面+结构类型变量名,再加=和{},大括号中对应值后面有逗号隔开,最后一个值赋完不用逗号,大括号赋值完要加结束标记分号;
三.结构的使用
#include<iostream>
using namespace std;
struct CandyBar//结构类型的变量CandyBar,描述包含的数据类型
{
char name[20];//char数组(字符串),品牌
double weight;//double数,重量
int calorie;//int整型,卡路里
};
int main()
{
//设置结构类型CandyBar名下的变量,给结构类型CandyBar名下的变量赋值,这时可以省略struct
CandyBar snack =
{
"Mocha Munch",//结构中描述的name类char数组
2.3, //结构中描述的weight类double浮点数
350 //结构中描述的calorie类int整数
};//snack是一个CandyBar类的struct结构
CandyBar snack2 = { "Baby Bear", 1.2, 280};//此处仅作展示,实际程序中不需要
//snack2是一个CandyBar类的struct结构
cout << "糖果品牌:" << snack.name<<endl;
//访问结构类型CandyBar名下,变量snack中的name类的值。未使用指针转型。
cout << "糖果重量(kg):" << snack.weight << endl;
cout << "糖果卡路里含量:" << snack.calorie << endl;
return 0;
}
如代码所示。与访问类成员时的操作相似,使用结构类型CandyBar变量snack加点号.加结构类型中对应的数值类型名来访问,例如:snack.name指向实际值"Mocha Munch"。
结语
今天我们共同学习了 C++ 结构的描述、声明与赋值、使用等重要知识。
学习编程是一条漫长的路,贵在坚持。每天学习来提升自己的的编程能力,成为耀眼的IT之星。
各位读者跟随我的脚步,我们共同努力,共同进步吧!
返回作者主页
专栏下一篇文档:C语言求幂运算(尽大支持)——中文式奇特命名
专栏下一篇文档:简洁易懂地介绍C++参数
其它文章:C++学习/温习笔记:源码学编程(一)(优质好文)
学习C++基本数值类型
C/C++基础运算符
如有探讨问题联系邮箱:yhlz0613@163.com
对于文章中的错误请各位批评指正,我一定及时更正
请在投票后评论回复意见,如有关于写博文的指导也请您回复提出
<!--感谢浏览 诸君慢行且留言 过客匆匆常回访-->