一.结构体类型的声明 struct tag(结构体标签)//无标签时为匿名结构,只能用一次{ 成员;}结构体变量;(此处结构体变量可省略,但注意要有;) 二.结构体变量的定义 //定义方式1 变量名紧
一.结构体类型的声明
struct tag(结构体标签)//无标签时为匿名结构,只能用一次
{
成员;
}结构体变量;(此处结构体变量可省略,但注意要有;)
二.结构体变量的定义
//定义方式1 变量名紧跟类型
struct node
{
int x;
char name[10];
}p1;
//定义方式2 先写类型 再进行定义
struct Stu
{
int x;
char name[10]
};
struct Stu s;
注意:以上方式定义的结构体不在主函数main内,均为全局变量,若在主函数main内定义则为局部变量。
三.结构的自引用——可实现链表功能
//结构的自引用 实现链表功能
typedef struct Node//使用typedef后,定义结构体变量时,Node p1 等同于 struct Node p1
{
int data;
struct Node* next;
};
四.结构体的初始化
1.结构体的初始化
#include <stdio.h>
struct Stu
{
int x;
char name[10];
int y;
};
int main()
{
struct Stu s = { 6,"zhangsan",7 };
printf("%d,%s,%d", s.x, s.name, s.y);//使用 结构体变量名.结构体成员名(s.name) 可得到相应数据
}
运行结果:
2.结构体嵌套初始化
#include <stdio.h>
struct p
{
char y;
};
struct node
{
int x;
char name[10];
struct p a;//引用之前须先初始化结构体struct p
};
struct node s = { 6,"zhangsan",{'w'}};
int main()
{
printf("%d,%s,%c", s.x, s.name, s.a.y);//使用 结构体变量名.结构体变量名.成员名(s.a.y)可得到嵌套结构体相应数据
}
运行结果:
以上就是结构体的基本知识,欢迎指正~