结构是一些值的集合,这些值被称为成员变量。结构的每个成员可以是不同类型的变量。
结构体为复杂对象:
人:名字+电话+性别+身高
书:书名+作者+定价+书名
struct Peo { char name[20]; char tele[12]; char sex[5]; int high; }; p1, p2;//p1和p2是两个全局的结构体变量 int main() { struct Peo p1 = { "张三","15596668862","男",181 }; printf("%s %s %s %d\n", p1.name, p1.tele, p1.sex, p1.high);//结构体变量.成员变量 return 0; }
p1,p2是全局变量,p是局部变量。
内部包含结构体的结构体如何初始化?
struct St { struct Peo p; int num; float f; }; int main() { //初始化结构体 struct St s = { {"list","15596668888","女",166},100,3.14f }; //打印包含结构体的结构体。 printf("%s %s %s %d %d %f\n", s.p.name, s.p.tele, s.p.sex, s.p.high, s.num, s.f); reture 0; }
号中的{ }包含的是另一结构体的内容:
struct St s ={ {" "," "," ", }, , }
当形参为指针时,如何使用结构体
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> struct Peo { char name[20]; char tele[12]; char sex[5]; int high; }; p1, p2;//p1和p2是两个全局的结构体变量 void print1(struct Peo* sp) { printf("%s %s %s %d\n", sp->name, sp->tele, sp->sex, sp->high);//结构体指针->成员变量 } int main() { struct Peo p1 ={"张三","1558976577","男",180}; print2(&p1); return 0; }
结构体指针->成员变量
sp->name = (*sp).name