pf=head=pb;
else pf…》next=pb;
pb…》next=NULL;
pf=pb;
}
return(head);
}
在函数外首先用宏定义对三个符号常量作了定义。这里用 TYPE 表示 struct stu,用 LEN
表示 sizeof(struct stu)主要的目的是为了在以下程序内减少书写并使阅读更加方便。结构
stu 定义为外部类型,程序中的各个函数均可使用该定义。
creat 函数用于建立一个有 n 个结点的链表,它是一个指针函数,它返回的指针指向 stu
结构。在 creat 函数内定义了三个 stu 结构的指针变量。head 为头指针,pf 为指向两相邻结
点的前一结点的指针变量。pb 为后一结点的指针变量。
11。10 枚举类型
在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七
天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或
其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型
的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。
应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为
任何基本类型。
11。10。1 枚举类型的定义和枚举变量的说明
1。 枚举的定义枚举类型定义的一般形式为:
enum 枚举名{ 枚举值表 };
在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。
例如:
该枚举名为 weekday,枚举值共有 7 个,即一周中的七天。凡被说明为 weekday 类型变
量的取值只能是七天中的某一天。
2。 枚举变量的说明
如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定
义说明或直接说明。
设有变量 a;b;c 被说明为上述的 weekday,可采用下述任一种方式:
enum weekday{ sun;mou;tue;wed;thu;fri;sat };
enum weekday a;b;c;
或者为:
enum weekday{ sun;mou;tue;wed;thu;fri;sat }a;b;c;
或者为:
enum { sun;mou;tue;wed;thu;fri;sat }a;b;c;
11。10。2 枚举类型变量的赋值和使用
枚举类型在使用中有以下规定:
1。 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。
例如对枚举 weekday 的元素再作以下赋值:
sun=5;
mon=2;
sun=mon;
都是错误的。
2。 枚举元素本身由系统定义了一个表示序号的数值,从 0 开始顺序定义为 0,1,2…。
如在 weekday 中,sun 值为 0,mon 值为 1,…;sat 值为 6。
【例 11。10】
main(){
enum weekday
{ sun;mon;tue;wed;thu;fri;sat } a;b;c;
a=sun;
b=mon;
c=tue;
printf(〃%d;%d;%d〃;a;b;c);
}
说明:
只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:
a=sum;
b=mon;
是正确的。而:
a=0;
b=1;
是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换。
如:
a=(enum weekday)2;
其意义是将顺序号为 2 的枚举元素赋予枚举变量 a,相当于:
a=tue;
还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。
【例 11。11】
main(){
enum body
{ a;b;c;d } month'31';j;
int i;
j=a;
for(i=1;id) j=a;
}
for(i=1;i 右移
12。1。1 按位与运算
按位与运算符〃&〃是双目运算符。其功能是参与运算的两数各对应的二进位相与。只
有对应的两个二进位均为 1 时,结果位才为 1,否则为 0。参与运算的数以补码方式出现。
例如:9&5 可写算式如下:
00001001 (9 的二进制补码)
&00000101 (5 的二进制补码)
00000001 (1 的二进制补码)
可见 9&5=1。
按位与运算通常用来对某些位清 0 或保留某些位。例如把 a 的高八位清 0 ,保留低八
位,可作 a&255 运算( 255 的二进制数为 0000000011111111)。
【例 12。1】
main(){
int a=9;b=5;c;
c=a&b;
printf(〃a=%dnb=%dnc=%dn〃;a;b;c);
}
12。1。2 按位或运算
按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要
对应的二个二进位有一个为 1 时,结果位就为 1。参与运算的两个数均以补码出现。
例如:9|5 可写算式如下:
00001001
|00000101
00001101 (十进制为 13)可见 9|5=13
【例 12。2】
main(){
int a=9;b=5;c;
c=a|b;
printf(〃a=%dnb=%dnc=%dn〃;a;b;c);
}
12。1。3 按位异或运算
按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异
或,当两对应的二进位相异时,结果为 1。参与运算数仍以补码出现,例如 9^5 可写成算式
如下:
00001001
^00000101
00001100 (十进制为 12)
【例 12。3】
main(){
int a=9;
a=a^5;
printf(〃a=%dn〃;a);
}
12。1。4 求反运算
求反运算符~为单目运算符,具有右结合性。其功能是对参与运算的数的各二进位按位
求反。
例如~9 的运算为:
~(0000000000001001)结果为:1111111111110110
12。1。5 左移运算
左移运算符“
小说推荐
- VC语言6.0程序设计从入门到精通
- -Page 1-Visual C 6.0 程序设计从入门到精通求是科技 王正军 编著
- 最新章:第136章
- C语言修仙
- 文案 林浔是一个程序员,通宵编代码后发现自己身体内多了一个程序输入窗口 他尝试编了一个循环程序 第二天,邻居家老头找上门来:小浔,你小小年纪,竟已跨入炼气期,做我门下弟子如何 第三天,在街上被人拍肩膀:少年,你骨骼惊奇,加入我宗门如何 林浔 后来,他发现现代社会真的有修仙者。而别人修仙靠灵力,自己修
- 最新章:第177章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- 三少诱妻C计画
- 作品:三少诱妻C计画 作者:冬情 男主角:雷振南 女主角:花雨侬 内容简介 她从小就喜欢一个大哥哥 也和大哥哥约定好要结婚 她一直在等他回来找她 然后当他的新娘 啊!怎么办、怎么办 老爹竟然帮她们找了结婚对象 要把她们统统嫁掉 不行啦!她要当大哥哥的新娘 怎么可以嫁给别人呢 她一定要跟姐姐们一起跟老
- 最新章:第23章
- 设计
- 作品:设计 作者:槐绿 男主角:殷采衣 女主角:相从 内容简介 幼时的一点夙缘 她铭记苦寻七年 终于重逢,终得亲近 一路言笑晏晏的和睦背后 是冰冷的一次次试探 由始至终,连一点点的信任都得不到 不难过,终是不可能的事 原已决定,真相大白之日 也是她离去之时 只是 这个后脚就跟来的人是怎么回事 正文
- 最新章:第26章
- 设计师
- 《设计师》作者:常叁思文案工科男有工科男的温柔,在钱心一三十五岁那年,陈西安参照行业最严标准瞒着他造了栋房子。抗震9度,耐火一级,防雷一级,传热系数2.0,地震不倒,雷劈不到,冬暖夏凉,节能环保。精装验收后,他把设计说明连同钥匙一起递到钱心一面前,说“我给你一个家吧”结果职业病发作的钱心一震惊的说“
- 最新章:第145章
- 设计你
- 作品:设计你 作者:艾佟 男主角:官聿颢 女主角:伊若橘 内容简介 唉唉唉,善良小女子遇上骄蛮千金女 下场只有三个字:灰熊惨 人家忧心自家大哥深陷初恋阴霾搞不婚 她不过好心提出传说之泉具有爱情魔力 取泉水、诱男主角喝下的任务便要她扛 官大哥的幸福问题她也很关心没错啦 毕竟他俩有过不寻常的“亲密接触
- 最新章:第25章
- 设计成婚
- 书名:设计成婚作者:叶兮凉【文案】郁瑾在无数次相亲失败之后,颓败地对许韦慕试探“你看我们俩都这么熟了,要不下半辈子你就跟我凑合着过吧”许韦慕挑眉“结婚可以,不过要签婚前协议”郁瑾抱起枕头,砸他“我怎么不知道你这么小气”许韦慕勾起嘴角,缓缓开口“协议内容只有一条,不许离婚”PS:后来郁瑾才知道,她会没
- 最新章:第58章