C++结构(OOP的基石)

写在前面

  • 面向初学者撰写专栏,个人原创的学习C/C++笔记(干货
  • 所作源代码输出内容为中文,便于理解
  • 如有错误之处请各位读者指正
  • 请读者评论回复、参与投票,反馈给作者,我会获得持续更新笔记干货的动力。

致粉丝:可以在阅读完我的文章后,自己尝试写一点原创心得(哪怕一行字也好)。
               希望众(尽管800个🤣)粉丝多多支持、浏览、自我创作@_@


知识点概览 

目录

写在前面

知识点概览 

一.结构简介

二.结构的创建、描述、声明与赋值

1.关键字struct

2.描述自定义结构的格式(在main函数外)

3.给新的结构命名、赋值(一般在main函数内)

4.注意

三.结构的使用

 结语

一.结构简介

  1. 可以存储多种类型数据的存储单元
  2. 结构可以自定义,定义类型后就可以创建这种类型的变量
  3. 创建结构的步骤 :先定义结构描述(描述标记结构中不同的数据类型),再按照描述来创建结构变量(结构数据对象)

二.结构的创建、描述、声明与赋值

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

对于文章中的错误请各位批评指正,我一定及时更正

请在投票后评论回复意见,如有关于写博文的指导也请您回复提出

 <!--感谢浏览                    诸君慢行且留言          过客匆匆常回访-->

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值