11.29
结构体
可以放多种类型的类型
声明一个结构体类型:
#inxlude<stdio.h>
struct mimngzi{
char name[10]; //结构体成员
int age; //全局变量,放在函数内部只有局部可用
double high;
char xuehao[]; //同一类型可多次出现
}; //有分号
int main(){
return 0;
}
声明结构体变量:
struct {
char name[10];
int age;
double high;
char xuehao[];
}mingzi1,mingzi2; //声明类型时,顺便声名变量,此时这种类型可以不声明名字
struct mingzi mingzi3,mingzi4; //用类型名声明变量
struct mingzi相当于一种类型
初始化:
未初始化的默认为0
初始化指定元素 struct stu stu={.age=27}
struct mingzi mingzi3={"mingzi",18,158,"2021005842"};
struct {
char name[10];
int age;
double high;
char xuehao[];
}mingzi1={"mingzi",18,158,"2021005842"};
访问成员
实例变量
有空间就是实例
struct mingzi mingzi3={"mingzi",18,158,"2021005842"};
mingzi.age //结构体变量名.要取得
printf("%d,%s,%lf\n",mingzi.age,mingzi.name,mingzi.high);
指针变量
struct stu *p=&mingzi;
printf("%d,%s,%lf\n",p->age,p->name,(&stu)-> high);
struct stu *p=(struct stu *)malloc(sizeof(struct stu));
p->age=18;
(*p).high=158;
strcpy(p->name,"huhu"); //不能直接改
->优先级大于&
赋值
字符型的一定要通过strcpy
复合文字结构:stu=(strcut stu){"小华",12,"123456"}
类似初始化C99标准