列舉經常用來定義意義相關的函式,比如星期、方位等,也經常用在狀態機當中;就是巨集定義常數的集合體,列舉中元素的本質也是乙個個的數字
如下例:
#include
typedef
enum fangxiang // 識別符號
e;int main(void)
輸出是0和101,enum是定義列舉型別的關鍵字
列舉的應用,密碼鎖:
#include
typedef
enum fangxiang // 識別符號
e;//定義狀態機的所有狀態集
typedef
enum state
s;int main(void)
else
break;
case state2:
if (num == 5)
else
break;
case state3:
if (num == 2)
else
break;
case state4:
if (num == 7)
else
break;
default:
current_state = state1;
break;
}if (current_state == state5)
if (current_state == state1)
}return
0;}
使用列舉設計了乙個狀態機的跳轉,實現了密碼鎖的功能;可以看到,列舉的定義與使用與結構體十分類似
#include
typedef
int (*p_func)(int a, int b); //這句也可以寫進結構體
int add(int a, int b)
//結構體各成員預設是public
//class在c++裡,是乙個類,所有成員和方法(函式)是si(private)有的,只能在類裡進行訪問
//struct裡面不能包含函式,但是可以包含函式指標
struct data
s;//填充結構體
void set_func(struct data *p)
//業務函式
int cnt_func(struct data *p_str)
int main(void)
雖然此程式實現的功能只是乙個加法運算,但用到了結構體的定義,結構體賦值,結構體運算,結構體裡指標的應用,所以值得繼續揣摩 c語言基礎 結構體
結構體也是一種資料型別 這種資料型別裡面可以定義不同的資料型別的資料,是一種使用者自定義的資料型別 當然結構體裡面可以巢狀陣列和結構體 結構體的定義 struct 結構體名 注意 結構體的命名用駝峰法 每乙個成員變數後面要加上 在最後的 後面要加上 結構體變數的定義 struct 結構體名 結構體變...
c語言基礎 結構體
在c語言中,可以使用結構體 struct 來存放一組不同型別的資料。結構體的定義形式為 struct 結構體名 變數名表列 結構體是一種集合,它裡面包含了多個變數或陣列,它們的型別可以相同,也可以不同,每個這樣的變數或陣列都稱為結構體的成員 member 請看下面的乙個例子 struct stu 像...
C語言基礎 C語言結構體 4 結構體陣列
上一節,我們講解了一下結構體的定義方式,作用域,以及注意事項,這次我們來講解結構體陣列.有些人疑問,結構體也有陣列啊?這是肯定的,其實結構體陣列非常常用,下面我們來看乙個需求示意圖 按照上圖所示,如果我們要求這樣子輸出,我們就要有幾個不同型別的陣列才能完成,但如果有了結構體,我們就可以非常簡單的完成...