结构体
一、什么是结构体:
1、不同类型的变量集合被称为结构体
2、结构体的目的是为了描述一个对象,为了把一个对象描述清除必须要所出这个对象的很多属性,而为了表示这些属性就要用到不同的变量,而且变量不止一个。
二、如何来定义结构体:
1、定义结构体
格式:
struct 结构体{
属性列表
};
比如:定义一个结果体,目的是为了描述一个工人
struct worker {
char id[10];
char name[10];
char sex[10];
int pay;
}
2、如何来定义结构体变量
1)上方那样定义的只是结构体的类型,并不是变量
比如:
int a;//其中int 是类型 而a是变量
2)在C程序里面有几种类型是C已经为我们做好的,我们只要拿来使用就行了,但是结构体类型在C程序里面没有,就需要用户自己来定义。
3)下方程序当中struct worker是定义的类型
struct worker {
char id[10];
char name[10];
char sex[10];
int pay;
}
4)定义结构体变量有三种方式
(a)在定义类型的时候就定义结构体变量,这样的变量就相当于全局变量。
(b)在定义结构体类型之后,再定义结构体变量。
(c)可以在定义结构体类型 的时候,省略结构体类型名 (一般不用)
struct {//定义结构体类型
char id[10];//定义工号
char name[10];//定义姓名
char sex[10];//定义性别
int pay;//定义基本工资
},wi,w2;//此处的分号不能少
(d)可以通过typedfed这个关键字,为结构体变量取别名别名一般用大写
三、如何给结构体变量赋初值
四、如何来输出结构体变量的值
1、由于结构体变量里面会包含有很多的属性,所以在输出时,一定要分别输出,不能整体输出
2、结构体变量名.成员
#include<stdio.h>
typedef struct worker{//定义结构体类型
char id[10];//定义工号
char name[10];//定义姓名
char sex[10];//定义性别
int pay;//定义基本工资
}WOR;//此处的分号不能少
void main(){
WOR w1={"0001","狄文杰","男",1200},w2={"0002","张三丰","女",500},w3;//w1和w2它们的属性相同但是属性值不相同。
printf("%s,%s,%s,%d",w1.id,w1.name,w1.sex,w1.pay);//只能够分别输出不能够整体输出
}
以下赋值方式也是可以的
//一个一个的将w1的值赋值给w3
w3.id=w1.id;
w3.name=w1.name;
w3.pay=w1.pay;
w3.sex=w1.sex;
3、结构体变量虽然不能整体输出,但是可以整体赋值