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标准
