本文创作目的仅是用于本人学习、复习,可能存在错误,谨慎参考!
结构声明
struct friends {
int age;
char name[20];
char hobby[30];
}
结构声明不会分配实际的存储空间
定义结构变量
struct friends fr1;
可以连续定义多个结构变量
struct friends fr1,fr2;
结构变量的内存分配是根据结构内的具体数据类型来决定的, 如fr1和fr2大小都是54(age 4, name 20,hobby 30)
初始化结构
struct friends fr1={18, "Chagil", "tennis"}
C99和C11可以指定初始化, 如只初始化name
struct friends fr1={.name="Chagil"}
如果一个元素被多次初始化,则其值是最后一次初始化的值
访问结构成员
使用结构成员运算符——.来访问结构成员
如
fr1.name就是一个char类型的数组,使用方法与其一样
fr1.age 就是一个int类型的变量,使用方法与一般int类型的变量一样
结构数组
声明结构指针
struct friends fr1[5]; fr1是一个内含五个friends结构的数组
访问结构的成员
fr1[1].name 访问第二个结构的name
指向结构的指针
声明指针
struct friends *pt; pt是指向friends结构的指针
指针指向具体的结构
pt=&fr1; (假设pt和fr1均事先已经声明)
用指针访问成员
假设pt已经是指向fr1的指针,有两种方法可以访问fr1中的成员
pt->name; ->运算符是由一个减号和大于号组成
或
(*pt).name; 必须要使用括号,因为.的优先级要大于*