結構體
一、什麼是結構體:
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、結構體變量雖然不能整體輸出,但是可以整體賦值