结构体定义
数组:一组相同类型元素的集合
而结构体可以是不同类型元素的集合
结构体类型的定义
struct Peo
{
char name[20];
char tele[20];
char sex[5];
int high;
};
struct st
{
struct Peo p;
int num;
float f;
};
结构体成员变量的创建
全局变量
struct Peo
{
char name[20];
char num[20];
char sex[5];
int high[10];
}p1,p2;//p1,p2是两个结构体全局变量
局部变量
int main()
{
struct Peo p1 = { "张三", "15596668862", "男", 181};
struct st s = { {"李四","1559955888", "女", 166}, 100, 3.14};
//printf("%s %s %s %d\n",p1.name,p1.tele,p1.sex,p1.high);
//printf("%s %s %s %d %d %f",s.p.name,s.p.tele,s.p.sex,s.p.high,s.num,s.f);
printf1(s);
printf2(&p1);
return 0;
}
结构体传参
void printf2(struct Peo *sp)
{
printf("%s %s %s %d\n", sp->name,sp->tele,sp->sex,sp->high);//结构体指针变量->成员变量
}
void printf1(struct st s)
{
printf("%s %s %s %d %d %d %f\n",s.p.name,s.p.tele,s.p.sex,s.p.high,s.num,s.f);//结构体变量.成员变量
}
int main()
{
struct Peo p1 = { "张三", "15596668862", "男", 181};
struct st s = { {"李四","1559955888", "女", 166}, 100, 3.14};
//printf("%s %s %s %d\n",p1.name,p1.tele,p1.sex,p1.high);
//printf("%s %s %s %d %d %f",s.p.name,s.p.tele,s.p.sex,s.p.high,s.num,s.f);
printf1(s);
printf2(&p1);
return 0;
}
小知识点:结构体也可以嵌套。
结构体传最好传地址,因为形参拷贝需要空间。