C语言结构体的定义和用法,定义结构体,定义结构体变量,结构体变量赋初值,输出结构体变量的值

结构体

一、什么是结构体:

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、结构体变量虽然不能整体输出,但是可以整体赋值
在这里插入图片描述


发布了26 篇原创文章 · 获赞 23 · 访问量 1980

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/104536783