1、结构体的声明
声明一个结构体类型一般形式:
struct 结构体名
{
结构体所包含的成员变量;
};
例:
struct stu
{
char name[20];
Int age;
};
2、定义结构体的类型变量
例:
struct stu s1,s2;
struct stu
{
char name[20];
Int age;
}s1,s2;
3、结构体变量的赋值与使用
struct stu s1 = {“xiaoming”, 18};
struct stu s1 = {.name = “xiaoming”, .age = 18};
s1.name = “xiaoming”;
s1.age = 18;
4、结构体数组
例:
struct stu s1[3] = {{“xiaoming”, 18}, {“xiaohong”, 17}, {“xiaowang”, 19}};
5、结构体嵌套
例:
struct A struct B
{ {
char ch; int i;
char a; struct A a;
char b; };
};
6、结构体指针
结构体和结构体变量是不同的概念。
结构体是一种数据类型,和int、char等是一样的,编译器不会为它分配内存。结构体变量才是实实在在的数据,才需要内存来存储。
(1)结构体指针:
struct stu s1 = {“xiaoming”, 18}; //结构体变量
struct stu *ps1 = &s1; //结构体指针,指向一个结构体变量
(2)指针的使用:
①.号的优先级高于*,(*pstu)两边的括号是不能少的。
printf ("name = %s\n", (*ps1).name);
② ->是一个新的运算符,一般叫做"箭头",通过它结构体指针能直接取得结构体的成员。
printf ("name = %s\n", ps1->name);
printf ("age = %d\n", ps1->age);