结构体
什么叫结构体?
把一些基本类型数据组合在一起形成的一个新的复合数据类型,就叫结构体。
为什么需要结构体?
为了表示一些复杂的事物,而普通的基本类型无法满足实际要求
如何定义结构体(3种)
第一种(推荐)
struct student
{
int age;
float score;
char sex;
}
第二种
struct student
{
int age;
float score;
char sex;
}st1;
定义后直接加上变量名st1。
不好,这个程序只能用一次。
第三种
struct
{
int age;
float score;
char sex;
}st1;
不好,没有定义结构体的名字。
怎么使用结构体变量
- 赋值和初始化
struct student st ={19,66.6,‘F’} /第一种.定义的同时赋初值.
struct student st2 ; /第二种.定义后逐个赋值.
st2.age=19;
st2.score=66.6;
st2.sex=‘F’;
printf("%d %f%c \n", st.age,st.score,st.sex) ;
printf ("%d %f %c \n", st2.age, st2. score,st2.sex) ;
- 如何取出结构体变量中的每一个成员(第二种更常用)
1.“结构体变量名.成员名”。如st2.age
2.“指针变量名->成员名”
struct Student st = {80, 66.6, ,F.}; /初始化定义的局时赋初值
struct Student * pst = &st; l /&st不能改成st
st. age = 10; /第一种方式
pst->age = 88; /第二种方式
pst->age在计算机内部会被转化成(*pst). age,等价于st.age
- 结构体变量和结构体指针作为函数参数传递的问题
- 结构体变量的运算
结构体变量不能加减乘除,但是可以相互赋值