初阶结构体
结构体关键字----struct
描述一个学生的信息
例如描述一个学生的一些数据,其中包括:
代码语言:javascript复制 名字
年龄
电话
性别
(1)第一种写法,Stu 结构体标签 ,struct Stu - 结构体类型
代码语言:javascript复制 struct Stu
{
//成员变量
char name[20];
short age; //定义一个结构体类型 相当于int
char tele[12];
char sex[5];
};//s1,s2,s3; //s1,s2,s3是三个全局结构体变量(一般不用)
int main()
{
struct Stu s; //创建结构体变量(局部变量) 相当于int a = 10;
return 0;
}
(2)第二种写法, 使用typedef关键字把struct Stu重新起名字为Stu,在;前起新的名字
代码语言:javascript复制 typedef struct Stu
{
char name[20];
short age;
char tele[12];
char sex[5];
}Stu; //Stu:类型
int main()
{
Stu s1 = { "张三",30,"15236985412","男" }; //初始化变量,结构体初识化要用{}
Stu s2 = { "李四",20,"15421410451","男" };
printf("%s %d ", s1.name, s1.age); //结构体变量.成员
printf("n");
Stu* ps = &s1;
printf("%s %d ", ps->name, ps->age); //结构体指针->成员
return 0;
}
(3)第三种写法
代码语言:javascript复制 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 bitn";
struct T t = { "hehe",{220,'a',"hello,world",3.14},arr };
printf("%sn", t.ch);
printf("%sn", t.s.arr);
printf("%lfn", t.s.d);
printf("%sn", t.pc);
return 0;
}