结构体

例:
#include<stdio.h>
//描述一个学生
//名字
//年龄
//性别
//电话

//struct  结构体关键字   Stu - 结构体标签   struct Stu - 结构体类型
struct Stu
{
	//成员变量
	char name[20];
	short age;
	char sex[5];
	char tele[12];
}s1, s2, s3;//变量列表 - 定义的三个全局结构体变量
int main()
{
	struct Stu s;//s:定义了一个局部结构体变量
}
  • strcut:结构体关键字
  • typedef:为现有类型创建一个新的名字(如下)
例:
#include<stdio.h>
typedef struct Stu
{
	char name[20];
}Stu;//通过typedef关键字把结构体类型的名字(struct Stu)改写成(Stu)
int main()
{
	Stu s;
}

结构体类型

  • 结构体的成员可以是标量,数组,指针,甚至是其他结构体

结构体初始化(在创建的时候赋初值)

例:学生类结构体初始化
#include<stdio.h>
struct Student
{
	char name[20];
	int age;
	char sex[5];
};
int main()
{
	struct Student s1 = { "家宝",18,"男" };//初始化
	return 0;
}

结构体嵌套初始化

例:
#include<stdio.h>
struct S
{
    int a;
    char c;
    char arr[20];
    double d;
};

struct T
{
  char ch[10];
    struct S s;
    char* pc;
};
int main()
{
    char arr[] = "hello bit\n";
    struct T t = { "hello", {100, 'w', "hello world", 3.14}, arr};
    
    return 0;
}