1. 结构体的声明
1.1 结构的基础知识
结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。
1.2 结构的声明
#include<stdio.h>
//人
//声明的结构体类型struct Peo
//struct Peo
//{
// //成员变量
// char name[20];
// char tele[12];
// char sex[5];
// int high;
//}p1,p2; //p1和p2是使用struct Peo结构体类型创建的两个变量,是全局变量
struct Peo
{
//成员变量
char name[20];
char tele[12];
char sex[5];
int high;
};
int main()
{
struct Peo p1 = { 0 };//结构体变量的创建,是局部变量
return 0;
}
1.3 结构成员的类型
结构的成员可以是标量、数组、指针,甚至是其他结构体。
struct Peo
{
char name[20];
char tele[12];
char sex[5];
int high;
};
//先有struct Peo,再有struct St
struct St
{
struct Peo p;
int num;
float f;
};
1.4 结构体变量的定义和初始化
#include<stdio.h>
struct Peo
{
//成员变量
char name[20];
char tele[12];
char sex[5];
int high;
}p3, p4; //声明类型的同时定义变量p3,p4
struct Peo p5, p6; //定义结构体变量p5,p6
struct St
{
struct Peo p;
int num;
float f;
};
int main()
{
struct Peo p1 = { "张三", "15111157809", "男", 181 };//结构体变量的创建和初始化
struct St s = { {"李四", "17891157809", "女", 165}, 100, 3.14f };
printf("%s %s %s %d\n", p1.name, p1.tele, p1.sex, p1.high);
printf("%s %s %s %d %d %f\n", s.p.name, s.p.tele, s.p.sex, s.p.high, s.num, s.f);
return 0;
}
2. 结构体成员的访问
#include<stdio.h>
struct Peo
{
//成员变量
char name[20];
char tele[12];
char sex[5];
int high;
};
void print1(struct Peo p)
{
printf("%s %s %s %d\n", p.name, p.tele, p.sex, p.high);//结构体变量.成员变量
}
void print2(struct Peo* ps)
{
printf("%s %s %s %d\n", (*ps).name, (*ps).tele, (*ps).sex, (*ps).high);
printf("%s %s %s %d\n", ps->name, ps->tele, ps->sex, ps->high);//结构体指针->成员变量
}
int main()
{
struct Peo p1 = { "张三", "15111157809", "男", 181 };//结构体变量的创建和初始化
print1(p1);
print2(&p1);
return 0;
}