0算法基础学算法 干活插曲篇 结构体
今天要讲的内容非常简单,甚至还谈不上一个标准的算法,但是就我个人认为,结构体当然是很重要的,你会发现,很多时候,c++自带的功能其实都是会让程序变简单,话不多说,进入正题~~~
一,结构体的定义
结构体和函数表面上有那么几分的相似,但是他们的功能是截然不同的,如果说叫我分个类的话,我会把结构体(struct)分到数据类型,而把函数(function)分到方法。
结构体(struct):是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构,它是一种复合数据类型,结构类型
一个结构体,他需要先定义,然后再调用,比如说我要定义一个包含有一天的日期的结构体
#include<bits/stdc++.h> using namespace std; struct Node{ int day,month,year; }; int main(){ return 0; }
其中,struct,是关键字,就像int、string一样,他就是定义结构体的关键,而后面我写的Node,仅仅只是这个结构体的名字,如果你想要,或者有必要,你完全可以把它改成kk,或者num
所以,定义一个结构体的标准格式如下
struct 结构体名字{ //结构体不需要圆括号 结构体内你要的数据类型 变量名;
//这是成员变量 };//分号至关重要,千万不能掉
在c++当中,结构体不仅可以定义成员变量,像我前面的day month year这些成员变量以外,还可以定义一个成员函数
#include<bits/stdc++.h> using namespace std; struct Node{ int day,month,year; void str() { cout<<day<<month<<year; } }; int main(){ return 0; }
如上,我不仅定义了变量,还定义了函数,在这个成员函数里,每当我调用它时,他都会把它这一级的day month year的值输出,值得注意的是,这个仅仅是c++的功能,在c语言中结构体是不能定义函数的
二,结构体的调用
定义了结构体后,下一步就是调用结构体,结构体有自己独特的调用规则,比如还是以我上面的程序为例,如果我要使用一个结构体,我们需要一个结构体变量,变量的关键字取决于结构体的关键字
#include<bits/stdc++.h> using namespace std; struct Node{ int day,month,year; void str() { cout<<day<<month<<year; } }; Node a,b;//两个结构体变量 int main(){ a.day=10; a.month=10; a.year=1010;//往结构体a里面存入了数值 b.day=20; b.month=20; b.year=2020;//往结构体b里面存入了数值 return 0; }
有的人可能有点不明白了,a和b到底是干啥的呀,你可以把它先一个标签,a.day和b.day完全是两个不同的变量,他们八竿子打不着关系,结构体一个最重要的作用就是封装,而封装往往都会有正面反馈,就是程序会更简单
有什么疑惑的地方欢迎留言,或者加群 https://jq.qq.com/?_wv=1027&k=poupnxU3 去@球君,觉得这一篇番外篇还不错的也请点个赞👍和关注➕,我在评论区和QQ群等你,ps:qq群中有很多的资源,也很欢迎大家加群后分享心得,分享资料,谢谢