结构体
- 定义
- 访问
- 初始化
定义
struct Name
{
任意类型的数据;
};
举例:
struct Node
{
int data;
Node *next;
}node,*node1,node2[1010];
Node 结构体类型名;node结构体变量;node[1010]结构体数组;
结构体内部能定义除了自己本身外的任何变量,但可以定义自身类型的指针变量;(即不能定义自己,能定义自己的指针);
访问
两种访问方式:".”方式和“->"方式;
普通变量node访问方式:node.data,node.next;
指针变量node1访问方式:node1->data,node->next;
指针变量就是特殊(这就叫会哭的变量有糖吃??😂)指针变量还有一种访问方法,它可以向普通变量一样访问,别人有的他也有,只要加一个*号就可以了:(*node1).data,(*node).next;
初始化
对他最陌生的初始化,但是用习惯了之后应该会很方便把;
构造函数:用来初始化结构体,函数名和结构体类型名一样,无返回类型(名同,无返);
一般结构体都会默认生成一个无参数,无函数体的构造函数;(无体,无参);
例子:
struct Node
{
int data;
Node *next;
Node(){}
};//原
调用:
Node node[2]={10,1000,11,1111};
struct Node
{
int data;
Node *next;
Node(int data1,Node *nodee){
data=data1;
node=nodee;
}
};//初始化后
或者把初始化简化成一行;
struct Node
{
int data;
Node *next;
Node(int data1,Node *nodee) :data(data1),node(nodee){}
}
定义时可以直接用:
Node node=Node(001,n);这种形式来做;
构造函数和Java有点类似,调用方式也有点类似;
4.一般来说,涉及到结点的问题用的比较多,像是树(数据,左孩子,右孩子),学生信息(姓名,学号,年龄。。。可以联想到数据库里面的学生信息存储,选课信息等),等以后想到再补充;
练习题解答:https://blog.csdn.net/weixin_43863618/article/details/104553159
指向结构体数组的指针:https://blog.csdn.net/weixin_43863618/article/details/104557901
待解决问题:
结构体变量可以向结构体数组一样直接用花括号赋值吗?