結構體 枚舉 共用體

    C的純數據類型是char  int  float 像是數組屬於聚合數據類型,C的聚合數據類型主要有兩種,數組和結構。數組是相同類型的數據結合,結構式可以允許不同類型數據結合。數組是通過下標訪問的,而結構是通過名字訪問的。

常用的定義方式。

1、先定義結構體類型,再定義結構體類型變量

struct 結構名

{

成員表列

};

2、定義結構體類型同時定義結構體類型變量

struct 結構名

{

成員表列

} 類型名 ;

3、直接定義結構體類型變量

struct

{

成員表列

}結構體類型變量;


還有一種就是通過 typedef 做一個類型。

4、

typedef  struct 結構名

{

成員表列

} 類型名 ;


代碼

#include <stdio.h>

struct student
{
	char name[10];
	int  age;
};

typedef struct teacher
{
	char name[10];
	int  age;
}tea;

int main(void)
{
    struct student li = {"xiaoli", 16};
	tea zhang = {"mr zhang", 30};

	printf("李學生的名字%s,年齡%d\n", li.name, li.age);
	printf("張老師的名字%s,年齡%d\n", zhang.name, zhang.age);
		
	return 0;
}

執行結構


還有一種叫枚舉

有的變量只有幾種可能取值。

定義一個變量是枚舉類型,可以先定義一個枚舉類型名,然後再說明這個變量是該枚舉類型。

例如: 

enum weekday{sun,mon,tue,wed,thu,fri,sat}; 

定義了一個枚舉類型名 enum weekday,然後定義變量爲該枚舉類型。例如: 

enum weekday day; 

也可以在定義的時候賦值

代碼

#include <stdio.h>

enum weekday{sun=7, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6}; 

int main(void)
{
	printf("星期天的代碼是%d\n", sun);	
	printf("星期一的代碼是%d\n", mon);	
	printf("星期二的代碼是%d\n", tue);	
	printf("星期三的代碼是%d\n", wed);	
	printf("星期四的代碼是%d\n", thu);	
	printf("星期無的代碼是%d\n", fri);	
	printf("星期六的代碼是%d\n", sat);	
	return 0;
}

執行效果


共用體也叫聯合,聲明和結構類似,意思是引用相同內存空間的相同位置。你可以把不同的東西存在同一個位置。

union

{

    類型定義  變量;

    類型定義  變量;

}枚舉名;

代碼

#include <stdio.h>

union 
{
	char str1[2][2];
    char str2[4];
}num;

int main(void)
{
	int i, j;
 	printf("num佔的空間%d\n", sizeof(num));  
	
	for(i=0; i<4; i++)
	{
		num.str2[i] = i;
	}
	
	for(i=0; i<2; i++)
		for(j=0; j<2; j++)
			printf("數據是%d\n", num.str1[i][j]);	
 
	return 0;
}


執行結果



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章