結構與聯(lián)合學習課件_第1頁
結構與聯(lián)合學習課件_第2頁
結構與聯(lián)合學習課件_第3頁
結構與聯(lián)合學習課件_第4頁
結構與聯(lián)合學習課件_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

8結構與聯(lián)合主要內容:結構類型與結構變量結構指針結構數(shù)組結構與函數(shù)聯(lián)合與位段主要內容:結構類型與結構變量結構指針結構數(shù)組結構與函數(shù)聯(lián)合與位段1-1結構類型利用變量只能處理單個數(shù)據(jù)利用數(shù)組可以處理多個同類型的數(shù)據(jù)–通過結構類型將不同類型數(shù)據(jù)組合成一個有機的整體10001

ZhangsanBeijingIDnameintchar

[

]M

18char

intchar

[

]87.5sex

age

addr

scorefloat1-1結構類型結構類型是一種將不同數(shù)據(jù)類型的變量說明(稱為結構類型的成員)組織起來所形成的一種新的構造類型struct

student{int

num;char

name

[20];char

sex;int

age;

char

addr[30];float

score;};#include

<stdio.h>struct

student{3.

int

num;charname

[20];4.

char

sex;intage;5.

char

addr[30];floatscore;6.

};7.

void

main(void){8.

int

i;struct

student

cs[5]

=

{{1,

"Zhao",

"F",

20,

"D1-401",

86.5},{2,

"Qian",

"M",

19,

"D8-201",

79},{3,

"Sun",

"M",

19,

"D8-201",

98},{4,

"Li",

"F",

19,

"D1-401",

89},{5,

"Zhou",

"M",20,

"D8-201",

50}};for(i

=

0;

i

<

5;

i++)9.10.11.12.13.14.15.printf("%d\t%s\t%c\t%d\t%s\t%f\n",

cs[i].num,

cs[i].name,

cs[i].sex,cs[i].addr,

cs[i].score);16.

}1-1結構類型結構類型的使用包含兩個階段:

設計結構類型:在程序設計中,要先確定結構類型的所有成員通過定義結構類型將這些成員組織起來,形成新的數(shù)據(jù)類型使用結構類型:通過結構類型來聲明對應的結構變量、結構指針、或結構數(shù)組對結構變量、結構指針、或結構數(shù)組中成員的操作最終完成所需要解決的計算任務1-1結構類型結構類型的聲明:struct結構類型名{成員聲明表};

成員列表包含結構體的所有成員的聲明成員聲明形式:類型名成員名;類型名可以是除本結構類型以外的其他任何類型struct

student{int

num;char

name

[20];char

sex;int

age;

char

addr[30];float

score;};1-1結構類型同一結構內的成員不能同名,但成員可以與結構外部的變量同名,也可以與其他結構的成員同名char

name[20];struct

student{int

num;char

name

[20];char

addr[30];};struct

teacher{int

num;char

name

[20];char

addr[30];};1-1結構類型注意:

結構類型聲明用于創(chuàng)建用戶自定義數(shù)據(jù)類型,不進行存儲分配sizeof(struct

student)的值?1-2結構類型的命名用typedef可以為一個已知的結構類型命名typedef

struct

point

{int

x;int

y;}

point;將結構類型struct

point命名為pointpoint

u,v;與struct

point

u,v;等價1-2結構類型的命名用typedef也可以為一個匿名結構類型進行命名typedef

struct

{int

x;int

y;}

point;將匿名結構類型命名為pointpoint

u,

v;1-3結構類型的嵌套結構成員也可以是其他結構,形成結構的嵌套struct

student{int

num;char

name

[20];struct

date{int

year;int

month;int

day;}birthday;char

addr[30];};struct

date{int

year;int

month;int

day;}struct

student{int

num;char

name

[20];struct

date

birthday;char

addr[30];};1-4結構變量的聲明數(shù)據(jù)類型為結構類型的變量簡稱為結構變量或結構結構變量的聲明有兩種方式:先聲明結構類型,再聲明結構變量在聲明結構類型的同時聲明結構變量1-4結構變量的聲明(1)結構類型和結構變量分別聲明struct

student{int

num;char

name

[20];struct

date{int

year;int

month;int

day;}birthday;char

addr[30];};struct

student

ZhangSan;static

struct

student

a1,

a2,

a3;struct

student

a[100];struct

student

*pstu;一般形式:存儲類型

struct結構類型名結構變量列表;1-4結構變量的聲明(2)結構類型和結構變量同時聲明struct

student{int

num;char

name

[20];struct

date{int

year;int

month;int

day;}birthday;char

addr[30];}ZhangSan,

a1,

a[100],

*psth;如果結構類型只使用一次,則結構類型名student可以省略,成為匿名結構類型1-4結構變量的聲明(2)結構類型和結構變量同時聲明static

struct

point

{int

x;int

y;}

p1,

p2;在聲明結構類型structpoint的同時,聲明了structpoint類型的靜態(tài)結構變量p1和p21-5結構變量的初始化聲明結構變量同時可以對其進行初始化–初始化所用的初值由初值表提供struct student

{charcharname[10];sex;short

age;int

score[2];}

student1={"zhang

san","m",18,{80,90}};struct student

student2

=

{""Li

Si",

"m",18,

{85,91}};注意:初值表中各初始化表達式的類型應與定義成員的類型一一對應1-6結構變量的存儲空間結構成員在內存中連續(xù)存放,成員的存儲分配按照從上向下、同一聲明中從左向右的順序進行,每個成員所占存儲空間的大小由其類型確定struct

student

ZhangSan;addr30bnum2name20year2irthdaymonth26day21-6結構變量的存儲空間結構變量的大小是指一個結構變量占用的存儲空間的字節(jié)數(shù)–一般等于一個結構變量所有成員的存儲字節(jié)數(shù)的總和當需要使用結構的大小時,通常應使用sizeof運算符來計算課后學習:存儲邊界對齊相關知識1-6結構變量的存儲空間sizeof運算符是一個單目運算符,用于計算指定類型數(shù)據(jù)的大小,即所需要占據(jù)存儲的字節(jié)數(shù)由sizeof運算符構成的表達式有兩種形式。即: sizeof

(表達式)表達式可以是任意表達式或者:sizeof(數(shù)據(jù)類型名)數(shù)據(jù)類型是除void外的任何數(shù)據(jù)類型的類型名1-6結構變量的存儲空間float

x;

const

int

YES=1;

struct

student

st,

sts[30];sizeof(char)

1,sizeof(short)

2,sizeof(float)

4,sizeof(x)

4,sizeof(YES)

2,sizeof(struct

student)

21或22,sizeof(st)sizeof(sts)21或22,(21或22)*30struct

student{long

num;char

name

[10];char

sex;int

age;float

score;};思考:結構類型包含指針成員時的情況1-7結構的引用包括對結構變量的引用和對結構變量中成員的引用兩個方面

對結構變量的引用包括結構變量的賦值操作、取地址操作和間訪操作,以及結構變量作為函數(shù)的參數(shù)及返回值

對結構變量中成員的引用則需要通過成員選擇運算符“.”來實現(xiàn)1-7-1結構變量的引用同類型的結構變量可以相互賦值–賦值操作將右端結構變量中各個成員的值一一賦給左端結構變量的各個成員例:struct

student

st1

=

{"zhang

san",

"m",

18,

{80,

90}};

struct

student

st2

=

{"Li

Si",

"m",

18,

{85,

91}},

st3;

st3

=

st1;

st1

=

st2;

st2

=

st3;st1={"zhang

san","m",18,{80,90}};是否合法?課后學習:淺拷貝、深拷貝1-7-1結構變量的引用可以通過

&

獲取結構變量的地址,如:struct

student

st1,

st2,

*p

=

&st1;通過

*

對指針所指結構變量進行間訪操作,如:*p

=

st2;1-7-2結構成員的引用C提供成員選擇運算符“.”支持對成員的訪問和操作成員選擇表達式的一般形式是:結構變量名.成員名其中:

“.”是一個雙目操作符,其左操作數(shù)是結構變量,右操作數(shù)是結構變量的成員

“.”操作符具有最高優(yōu)先級,由它構成的成員選擇表達式在任何地方都是一個整體,表示對結構變量中成員的訪問1-7-2結構成員的引用struct

student

st1;strcpy(,"zhang");

scanf("%s",

);s1.sex="m";s1.age=18;s1.score[0]=80;s1.score[1]=87;scanf("%c",

&s1.sex);scanf("%d",

&s1.age);scanf("%d",

&s1.score[0]);scanf("%d",

&s1.score[1]);1-7-3嵌套結構的引用嵌套結構中成員的成員同樣采用“.”操作符訪問“.”操作符的使用個數(shù)與嵌套結構的層數(shù)相等

“.”操作符的結合性是從左至右struct

date{int

year,

month,

day;}struct

student{int

num;char

name

[20];struct

date

birthday;char

addr[30];};struct student

st1,

st2;st1.birthday.day

=

16;st1.birthday.year

=

1980;(st1.birthday).day與st1.(birthday.day)有什么區(qū)別?例根據(jù)平面上點的結構類型構造平面上線段的嵌套結構類型,說明對嵌套結構變量中結構成員的成員的引用,并求線段的長度4./*平面上點的結構類型*//*

x,y是點的坐標*/7.8.9.#include

"stdio.h"#include

"math.h"struct

point{int

x,

y;5.

};6.

struct

line{char

name[6];struct

point

start;struct

point

end;/*平面上線段的嵌套結構類型*//*線段名稱*//*線段的起點*//*線段的終點*/10.

};11.11.11.

void

main(void){struct

line

a

=

{"abc",

{1,

1},

{10,

10}};double

dx2,

dy2,

length;11.11.11.11.11.printf("line

name

is

%s\n",

);printf("starting

point:(%d,

%d)\n",

a.start.x,

a.start.y);printf("endpoint:(%d,

%d)\n",

a.end.x,

a.end.y);scanf("%s",

);scanf("%d%

d%",

&a.start.x,

&a.start.y);11.11.11.11.11.a.end.x

=

100;

a.end.y

=

100;dx2

=

(a.end.x

-

a.start.x)

*

(a.end.x

-

a.start.x);dy2

=

(a.end.y

-

a.start.y)

*

(a.end.y

-

a.start.y);length

=

sqrt(dx2

+

dy2);printf("the

tength

is

%lf\n",

length);11.

}1-7-3嵌套結構的引用int

x,

y;}point;typedef

struct{point

start;point

end;}line;通過結構嵌套,利用已有結構定義新的結構,實現(xiàn)代碼復用typedef

struct{typedef

struct{int

r;point

center;}circle;typedef

struct{point

a;line

l;}plain;plain

p

=

{{1,

1},

{{5,

5},

{10,

15}}};p.a.x

=

10;

p.l.start.x

=

100;主要內容:結構類型與結構變量結構指針結構數(shù)組結構與函數(shù)聯(lián)合與位段2結構指針struct

student

b,

*

pb

=

&b;pb

=

&a;結構指針是指以結構類型為基類型的指針,即結構型指針struct

date{int

year,

month,

day;};struct

student{int

num;char

name

[20];struct

date

birthday;char

addr[30];}a,

*pa

=

&a;2結構指針與數(shù)組型指針一樣,可以通過指針訪問結構變量的成員(1)利用“*”和“.”實現(xiàn)間接訪問struct

student

a,

b,

*pa

=

&a,

*pb

=

&b;*pa

=

*pb;strcpy((*pa).name,

"Zhangsan");scanf("%s",(*pa).addr);scanf("%d",

&(*pa).num);(*pa).name與*的區(qū)別?2結構指針判斷下列語句對錯

(*pa).num=12345; (*pa).name[0]="c";*((*pa).addr

+

2)

=

"6";++*((*pa).addr

+

3);*((*pa).addr

+

3)++;(*pa).addr

=

"12011";2結構指針(2)利用成員選擇運算符“->”實現(xiàn)對結構成員的訪問形式:結構指針名->成員名“->”是雙目運算符,具有最高優(yōu)先級,左結合

“->”的左操作數(shù)是結構類型的指針,右操作數(shù)為結構成員結構指針名->成員名等價于(*結構指針名).成員名2結構指針struct

student

a,

*pa

=

&a;?pa->namepa->num??a.num??(*pa).name(*pa).numa.birthday.year?(*pa).birthday.yearpa->birthday.year?(pa->birthday).year設有多種類型成員的嵌套結構類型聲明如下:date{year;month[12];day;structintcharshort};struct

mul_type{charintfloatcharcharstructstructc;n;d;s[12];*ps;date

a;date

*pa;}m

=

{"a",100,3.14f,"myabcdefg",m.s,{2007,"July",

29},&m.a},*pm=&m;pm->pa->yearm.a.year(*pm).pa->yearm.pa->yearpm->a.year(*pm->pa).year(*m.pa).year(*(*pm).pa).year;等價主要內容:結構類型與結構變量結構指針結構數(shù)組結構與函數(shù)聯(lián)合與位段3結構數(shù)組結構數(shù)組是由相同結構類型的元素構成的數(shù)組

一維結構數(shù)組是一種應用十分廣泛的數(shù)據(jù)結構,一般情況下都使用一維結構數(shù)組

一維結構數(shù)組特別適合描述通信錄、登記表、成績單以及編譯程序處理的符號表等二維表格數(shù)據(jù)二維表格中的每一行對應結構數(shù)組的一個元素,每一列對應一種屬性,代表一個結構成員的類型一維結構數(shù)組中的元素又稱為記錄3結構數(shù)組學生情況登記表student[0]student[1]student[2]…student[29]numnamesexagescore2129500張三m1883.52129501李四m1990.52129502王紅f1885.0……………2129529程萍f1987.03-1結構數(shù)組的聲明結構數(shù)組的聲明與一般數(shù)組的聲明類似struct

student

cs[5]

={{2129500,"張三","m",18,83.5},{2129501,"李四","m",18,90.5},{2129502,"王紅","m",18,85.0},{2129503,"田亮","m",19,87.0},{2129504,

"張靈",

"f",

18,

81.5},};struct

student{long

num;char

name

[10];char

sex;int

age;float

score;}class1[40];3-2結構數(shù)組的使用結構數(shù)組的使用指對結構數(shù)組元素的引用和元素中成員的訪問及操作–引用結構數(shù)組中的元素與引用普通數(shù)組元素的形式完全一樣for(i

=

0;

i

<

2;

i++){printf("%s\t",

class2[i].num);printf("%s\t",

class2[i].name);printf("%c\t",

class2[i].sex);}3-2結構數(shù)組的使用struct

student

class1[30],

*p;例1:for(p

=

class1;

p

<

&class1[30];

p++){printf("\n%10ld%15s%4c%6hd%8.1f",

p->num,p->name,

p->sex,

p->age,

p->score);}例2:p

=

class1;(*p).num或(p+0)->num 表示引用class1[0].num(*(p+i)).num或(p+i)->num表示引用class1[i].num(*++p).num或(++p)->num 表示引用class1[1].num主要內容:結構類型與結構變量結構指針結構數(shù)組結構與函數(shù)聯(lián)合與位段4結構與函數(shù)結構作為函數(shù)的參數(shù)結構作為函數(shù)的返回值4-1結構作為函數(shù)參數(shù)將結構的信息傳遞給函數(shù)有以下途徑:將結構成員作為函數(shù)參數(shù)僅用到結構的單個成員將整個結構變量作為函數(shù)參數(shù)(傳值)函數(shù)對結構變量的副本進行操作用指向結構變量的指針作參數(shù)(傳址)對較大的結構變量傳遞效率較高,僅傳遞一個指針將結構數(shù)組作為函數(shù)的參數(shù)4-1-1結構成員作為函數(shù)參數(shù)例如:–對2個物理量,量綱相同時可以進行物理量的相加操作typedef

struct{double

size;char

dimension[12];}motion;double

add_motion_size(double,

double);motion

b

=

{12.5,

"m/s"},

c

=

{26.7,

"m/s"},

d;d.size

=

add_motion_size(b.size,

c.size);4-1-2結構變量作為函數(shù)參數(shù)例如:–對2個物理量,量綱相同時可以進行物理量的相加操作typedef

struct{double

size;char

dimension[12];}motion;double

add_motion_size(motion

u,

motion

v);motion

b

=

{12.5,

"m/s"},

c

=

{26.7,

"m/s"},

d;d.size

=

add_motion_size(b,

c);4-1-3結構指針作為函數(shù)參數(shù)例如:–對2個物理量,量綱相同時可以進行物理量的相加操作typedef

struct{double

size;char

dimension[12];}motion;double

add_motion_size(motion

*u,

motion

*v);motion

b

=

{12.5,

"m/s"},

c

=

{26.7,

"m/s"},

d,

*pb=&b,*pc=&c;d.size

=

add_motion_size(pb,

pc);4-1-4結構數(shù)組作為函數(shù)參數(shù)結構數(shù)組作為函數(shù)的參數(shù)時一定要用結構指針,形參應該聲明為數(shù)組元素結構類型的指針實參用結構數(shù)組名或者結構數(shù)組首元素的地址例 結構數(shù)組作為函數(shù)的參數(shù)的應用舉例:設計一個貨物結構類型,定義對應的結構數(shù)組。先進行數(shù)據(jù)輸入并顯示輸入的數(shù)據(jù),然后對價格按照降序排序并顯示排序后的結果1.2.#include

"stdio.h"#define

N

33.typedef

struct

{4.5.6./*貨物編碼*//*名稱*//*價格*/7.long

code;char

name[20];float

price;}GOODS;8.9.voidinput(GOODS

*p,

int

n);void

sort(GOODS

*p,

int

n);void

display(GOODS

*p,

int

n);void

main(void){12.13.GOODS

meat[N];input(meat,N);

/*結構數(shù)組名作為實參*/14.15.display(&meat[0],

N);sort(meat,

N);display(meat,

N);16.17.

}18.18.18.18.

voidinput(GOODS

*p,int

n){int

i;

float

tmp;for(i

=

0;

i

<

n;

i++){scanf("%ld",

&p[i].code);18.18.18.18.scanf("%s",

(p+i)->name);scanf("%f",

&tmp);(*(p+i)).price

=

tmp;}18.

}18.

void

sort(GOODS

*p,

int

n){18.int

i,

j;

GOODS

t;18.18.18.for(i

=

0;

i

<

n-1;

i++)for(j

=

i

+

1;

j

<

n;

j++)if((p

+

i)->price

<

(p

+

j)->price){18.18.

t

=

*(p

+

i);

*(p

+

i)

=

*(p

+

j);

*(p

+

j)

=

t;}18.

}35.35.35.

void

display(GOODS

*p,

int

n)

{int

i;for(i

=

0;

i

<

n;

i++){35.printf("%ld\t",

(*(p

+

i)).code35.35.printf("%s\t",

(p

+

i)->name);printf("%f\n",

p[i].price);35.}35.

}4-2結構作為函數(shù)返回值包括三種形式:將結構成員作為函數(shù)返回值將整個結構變量作為函數(shù)返回值用指向結構變量的指針作函數(shù)返回值函數(shù)返回類型應與要返回的對象的類型一致4-2-1結構成員作為函數(shù)返回值例如:typedef

struct{double

size;char

dimension[12];}motion;double

get_motion_size(motion

u){return

u.size;}date

get_student_birthday(student

stu){return

stu.birthday;}4-2-1結構變量作為函數(shù)返回值例如:motion

get_motion(void){motion

a;printf("inputthe

value

of

member

size

and

dimension\n");scanf("%lf",

&a.size);scanf("%s",

a.dimension);return

a;}typedef

struct{double

size;char

dimension[12];}motion;4-2-1結構指針作為函數(shù)返回值例如:typedef

struct{double

size;char

dimension[12];}motion;motion

*

get_motion(void){static

motion

a;printf("inputthe

value

of

member

size

and

dimension\n");scanf("%lf",

&a.size);scanf("%s",

a.dimension);return

&a;}主要內容:結構類型與結構變量結構指針結構數(shù)組結構與函數(shù)聯(lián)合與位段5-1聯(lián)合以變量、數(shù)組、結構為載體的數(shù)據(jù)所代表的含義是固定不變的實際應用中,有些信息需要在不同場合表現(xiàn)為不同的數(shù)據(jù),如學生基本信息中與年齡相關的信息可以是實際年齡或出生日期,分別為整型和字符串–C語言通過聯(lián)合類型來實現(xiàn)5-1聯(lián)合聯(lián)合類型的變量由多個成員組成

這些成員并不同時存在,而是在不同時刻擁有不同的成員在同一時刻僅擁有其中一個成員

聯(lián)合變量的成員可以是任何類型的數(shù)據(jù),包括任何基本類型、指針類型、數(shù)組類型、結構類型或其它聯(lián)合類型5-1聯(lián)合除了用關鍵字union取代struct之外,聯(lián)合類型在語法形式上與結構完全相同例:union

chl{char

c;short

h;long

l;};5-1聯(lián)合union

chl

v

=

{"9"},

w

=

{"a"};聯(lián)合在同一時刻它只擁有其中的一個成員,在初始化時只能對第1個成員進行初始化,初值表中只能包含與第1個成員數(shù)據(jù)類型相同的一個初值union

chl{char

c;short

h;long

l;}v

=

"9",

w

=

"a";#include

"stdio.h"union

chl{charc;shorth;longl;1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.};void

show(union

chl

*pu);void

show_memory(union

chl

*pu);void

main(void){union

chl

u;printf("sizeofu

is

%d\n",

sizeof(u));u.l

=0x31323334L;show(&u);show_memory(&u);u.h

=

0x3638;show(&u);show_memory(&u);18.

}19.

void

show(union

chl

*pu){19.

printf("char

format:

%c\n",

(*pu).c);19.

printf("int

format:

%hx\n",

pu->h);19.

printf("long

format:

%lx\n",

(*pu).l);19.

}19.

voidshow_memory(union

chl

*pu){19.

char

*p

=

(char

*)pu;19.

int

i

=

0;19.

while(i

<

4)19.

{19.

printf("addr

%dth

byte

of

u

is

0x%p\t",

i,

p+i);19.

printf("the

ASCII

in

%dth

byte

of

u

is

%c\n",

i,

*(p+i));19.

i++;19.

}19.

}注意:使用聯(lián)合變量時,必須知道當前有效成員聯(lián)合的大小大于或等于最長成員的字節(jié)數(shù)可以聲明聯(lián)合類型的指針。如:union

chl

v,

*pv

=

&v;注意:

聯(lián)合所有成員的地址和聯(lián)合變量的地址都相同,不同成員指針值(地址值)的類型是不相同的

即:&u,&u.c,&u.h,&u.l的地址都相同。而&u的數(shù)

據(jù)類型是union

chl

*;&u.c的數(shù)據(jù)類型是char

*;&u.h的數(shù)據(jù)類型是int

short

*;&u.l的數(shù)據(jù)類型是long

int

*5-1聯(lián)合可以通過聯(lián)合變量和“.”操作符,以及指向聯(lián)合變量的指針和“->”操作符來引用聯(lián)合成員對聯(lián)合成員的引用形式為:(1)聯(lián)合變量名.成員名(2)(*指向聯(lián)合變量的指針).成員名(3)指向聯(lián)合變量的指針->成員名例如:u.c或(*pu).c或pu->c都表示引用聯(lián)合成員c,類型是char

u.c="a",(*pu).h=0x3839,以及pu->l=0x31323334L分別表示對聯(lián)合u的成員c、h、l的賦值操作5-1聯(lián)合聯(lián)合中允許存儲不同類型的數(shù)據(jù),對某個時刻存儲的數(shù)據(jù),其所允許的操作也有所不同,有些操作對該類型的數(shù)據(jù)是相容的,但有些操作卻不相容(得不到正確結果)由于語法上合法,編譯器對這種情況不會報錯,但運算的結果卻不正確5-1聯(lián)合5-2位段位段(bitfield)是指由多個相鄰的二進制位可以組成的結構或者聯(lián)合中的整型或無符號整型成員以位段為成員的結構稱為位段結構組成位段的二進制位的數(shù)目成為該位段的寬度,它是一個非負的整型常量表達式位段結構在操作系統(tǒng),編譯程序,計算機接口的C語言編程方面使用較多5-2位段例如,stdio.h中關于文件狀態(tài)成員flags的取值就規(guī)定了1為讀狀態(tài),2為寫狀態(tài),4為緩沖數(shù)據(jù)狀態(tài)等。這些數(shù)據(jù)都

是一些值很小的整數(shù),沒有必要用int(16bit)或char(8bit)量來存儲每一個值通常對若干個特征中的每個特征按照取值的大小分配合適的二進制位,然后將它們封裝到一個int或char變量中。這樣就可以通過位段名對相應的二進制位或位串進行操作,而不必采用位運算考慮十字路口的交通燈,顏色枚舉類型的聲明如下:enum

color{

OFF

=

0,

RED

=

1,

YELLOW

=

2,

GREEN

=

3}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論