當前位置:成語大全網 - 書法字典 - 如何在c語言中使用並集和枚舉

如何在c語言中使用並集和枚舉

首先,聯合

Union使得同壹個內存段可以根據不同的數據類型進行訪問,數據實際上存儲在同壹個位置。它的聲明和使用看起來與結構非常相似,但它的實際功能完全不同:

工會?型號_名稱?{

鍵入1?element 1;

type2?元素2;

type3?元素3;

}?object _ name聯合中所有聲明的元素占用相同的內存空間,其大小是聲明中最長元素的大小。例如:

工會?mytypes_t?{

夏爾?c;

int?我;

浮動?f;

}?我的類型;定義了三個元素:

mytypes.c

mytypes.i

mytypes.f每壹種都是不同的數據類型。因為它們都指向相同的內存空間,所以更改壹個元素的值會影響所有其他元素的值。

union的用途之壹是將long基本類型與由其他較小數據類型組成的結構或數組相結合,例如:

工會?混合_t{

龍?l;

struct?{

矮?嗨;

矮?lo;

}?s;

夏爾?c[4];

}?混合;上例定義了三個名字:mix.l、mix.s、mix.c,妳可以通過這三個名字訪問同壹個4字節內存空間。至於用哪個名字來訪問,那要看妳想用什麽數據類型,是long,short還是char。下圖顯示了內存中該聯合中每個元素的可能結構,以及如何通過不同的數據類型訪問它:

第二,enum枚舉

1.枚舉的定義

枚舉類型定義的壹般形式是:

?enum?枚舉名稱{?枚舉值表?};所有可用值都應列在枚舉值列表中。這些值也稱為枚舉元素。

例如:

枚舉命名為weekday,有七個枚舉值* * *,即壹周中的七天。描述為工作日類型的變量值只能是七天中的壹天。

2.枚舉變量的描述

與結構和聯合壹樣,枚舉變量可以用不同的方式描述,即先定義後描述,也可以定義或直接描述。

變量A、B和C被描述為上述工作日,並且可以采用以下任何方法:

enum?工作日{?星期日,星期壹,星期二,星期三,星期四,星期五,星期六?};

enum?工作日?甲、乙、丙;或用於:

enum?工作日{?星期日,星期壹,星期二,星期三,星期四,星期五,星期六?}a,b,c;或用於:

enum?{?星期日,星期壹,星期二,星期三,星期四,星期五,星期六?}a,b,c;3.枚舉類型變量的賦值和使用。

枚舉類型在使用中有以下規定:

A.枚舉值是常量,不是變量。妳不能在程序中用賦值語句給它賦值。

例如,對枚舉weekday的元素進行以下賦值:

?孫= 5;

mon = 2;

sun = mon都是錯的。

B.枚舉元素本身由系統用壹個代表序號的數值來定義,從0開始定義為0,1,2…等。例如,在工作日,sun值為0,mon值為1,…,sat值為6。

#包含?& ltstdio.h & gt

int?主()

{

enum?工作日?{?周日,周壹,周二,周三,周四,周五,周六?}?甲、乙、丙;

a =孫;

b = mon

c = tue

printf("%d,%d,%d ",a,b,c);

回歸?0;

}描述:

只有枚舉值可以賦給枚舉變量,元素的數值不能直接賦給枚舉變量。比如:

a =總和;

b = mon是正確的。並且:

a = 0;

b = 1;是錯誤的。如果必須給枚舉變量賦值,就必須使用cast。

比如:

?a=(enum?工作日)2;其意義在於將序號為2的枚舉元素賦予枚舉變量A,相當於:

a = tue