列舉 typedef關鍵字

2021-07-03 13:04:26 字數 2399 閱讀 7841

1)列舉型別介紹及定義

目前為止接觸到的資料型別:

基本資料型別

指標型別

空型別 void

構造型別

陣列、結構體

列舉型別

a、列舉型別

①列舉型別定義的一般形式:

enum 列舉型別名;

在列舉值中應羅列出所有可用值。這些值也稱為列舉單元。

列舉型別是一種基本型別,而不是一種構造型別,因為它不能再分解任何基本型別。。

②例如:定義乙個列舉變數,儲存一周天數

enum weekday;

關於列舉型別元素的命名習慣:

如下:k+列舉名+列舉值名

enum icolor;

2)列舉變數的定義和使用

a、列舉型別的變數的定義

定義:①先定義列舉型別,在定義列舉型別的變數

enum 列舉型別名 列舉變數名列表;

②定義列舉型別的同時,定義變數

enum *** i***;

b、列舉型別的初始化

①賦值:

enum *** i***;//定義列舉變數

i***=k***man;//給列舉變數賦值

c、列舉變數的使用

printf("%d\n",i***);

d、列舉變數的值

列舉的元素的值:第乙個元素的值預設為0,一次遞增+1;

如:k***man=1,k***women=2,k***yao=3

enum ***;

注意:列舉型別定義以後,系統會自動給列舉的每個元素都會賦值乙個整形的初值。

3)typedef關鍵字介紹

回顧:之前學習的型別:

基本資料型別、空型別、構造型別、指標型別、定義型別

a、typedef關鍵字的概念及語法格式

①概念和語法

c語言不僅提供了豐富的資料型別,而且還允許有使用者自己定義型別說明符,也就是說允許由使用者為資料型別取「別名」。

一般形式:

typedef 原型別名 新型別名

其中原型別名種含有定義部分,新型別名一般用大寫表示,以便區別。

有時也可用巨集定義來代替typedef的功能,但是巨集定義是由預處理來完成的,而typedef則是在編譯時完成的,後者會更加靈活。

**:typedef int malatang;

malatang qiezi=3;

malatang *p=&qiezi;

printf("%d\n",qiezi);//輸出3

printf("%p\n",*p);   //輸出3

b、typedef的使用方法

①基本資料型別

**:typedef int malatang;

malatang qiezi=3;

malatang *p=&qiezi;

printf("%d\n",qiezi);//輸出3

printf("%p\n",*p);   //輸出3

②用在陣列,給陣列起別名

**:typedef int array[5];

array a1=,b1=;

-->//等價於int a1[5],b1[5];

for(int i=0;i<5;i++)

③用在結構體、給結構體起別名

不起別名的用法:

struct person ;

struct person p1=;

a)給結構體起個別名法一

//給struct person 起個別名 p

typedef struct person p;

p p2=;

b)給結構體起個別名法二.

typedef struct carmycar;//表示把結構體起個別名 mycar

mycar car1=;

c)給匿名的結構體起個別名

typedef structiphone;

//用新型別定義結構體變數

iphone iphone7=;

④用在列舉型別上,給列舉型別起別名

a)typedef enum *** i***;//i***是別名

b)typedef enum weekday;   //weekday是別名

c)typedef enum *** s;//給列舉型別起個別名s

s s1,s2;

s1=k***yao;

⑤給函式指標起別名

int sum(int a,int b)

int div(int a,int b)

//函式指標:指向函式的指標

int (*p)(int,int);//函式指標

typedef int (*fun)(int,int);//fun是乙個別名

fun f1,f2;

f1=sum;

printf("%d\n",f1(1,5));//輸出結果為6

c enum 列舉關鍵字

一般的定義方式如下 enum enum type name enum variable name 注意 enum type name 是自定義的一種資料資料型別名,而enum variable name 為enum type name型別的乙個變數,也就是我們平時常說的列舉變數。實際上enum ty...

關鍵字static和typedef

1.static 修飾區域性變數時,相當於改變了其生命週期,但不改變作用域 2.static 修飾全域性變數,代表該變數僅在本檔案內有效 沒有static 修飾 全域性變數 宣告之後支援跨檔案引用 3.static 修飾函式,該函式只在本檔案內被呼叫或訪問,不能跨檔案訪問 函式本身在另乙個檔案 宣告...

(C語言)typedef關鍵字

typedef 定義 c 語言提供了typedef關鍵字,您可以使用它來為型別取乙個新的名字。下面的例項為單位元組數字定義了乙個術語byte typedef unsigned char byte 在這個型別定義之後,識別符號 byte 可作為型別unsigned char的縮寫,例如 byte b1...