结构是一些值的集合,这些值被称为成员变量。结构的每个成员可以是不同类型的变量。
结构体为复杂对象:
人:名字+电话+性别+身高
书:书名+作者+定价+书名
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