收藏 分享(赏)

C语言学习笔记 5.doc

上传人:HR专家 文档编号:7513997 上传时间:2019-05-20 格式:DOC 页数:4 大小:17.50KB
下载 相关 举报
C语言学习笔记 5.doc_第1页
第1页 / 共4页
C语言学习笔记 5.doc_第2页
第2页 / 共4页
C语言学习笔记 5.doc_第3页
第3页 / 共4页
C语言学习笔记 5.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、C语言学习笔记 5共用体是几个类型相同或者不同的成员变量占用同一段内存的结构。/注意:这里强调的是共用体变量里面的成员变量,不同的共用体变量还是占用独立的存储区域。共用体各成员变量的存储空间是相互覆盖的,一个成员变量值的改变会影响其他成员变量。共用体变量所占的存储空间不是所有成员变量所占空间的总和,而是所有成员变量中的最大者。/这个很好理解。共用体变量的地址和各个成员变量的地址相同。/也就是说共用体变量和成员变量的首地址相同。22:262011/12/7改变每一个成员变量的值,共用体变量中的其他成员变量的值都有可能改变,因此共用体变量中起作用的是最后一次改写的成员。/共用体变量不能整体赋值,也

2、不能初始化。/因为是共用内存,后赋值的变量会覆盖先赋值的变量,所以整体赋值似乎没有什么意义。共用体变量的引用:书上只介绍了一种引用方式,点引用方式,“共用体变量名.成员变量名“。/结构体、共用体、枚举,这三种组合数据类型在定义时有着三种同样的定义形式:1)先定义数据类型,再定义变量。2)定义数据类型的同时定义变量。3)直接定义变量。/其实,枚举数据类型还是有很多需要特别注意的地方。1、在定义枚举时,花括号里面枚举常量之间用逗号“,“隔开,而且最后一个枚举常量后面无分号或者逗号。/这跟数据库创建表时,各属性之间用逗号隔开,最后一个属性后面没有逗号类似。2、枚举变量的值必须来自枚举常量列表。3、枚

3、举常量实际上是一个标示符,其值是一个整数常数,默认情况下,各枚举常量按照定义时的顺序,从0开始取值,依次增1。/记住这个默认规则。可以为枚举常量显式指定特定值。但是只能在定义枚举时的花括号中指定,不能在定义完枚举后再来指定值。4、当某个枚举常量被显式赋值后,其后未被显式赋值的枚举常量将根据按出现顺序依次加1的规则确定其值。eg:enumcolorred=-10,orange,yellow=0,green=10;则orange=-10+1=-9。/记住这个默认规则。流程控制(FlowControl)/流程控制也叫过程控制,C语言之所以是一种面向过程的语言,这还是归功于这9种控制语句。其实,再怎样

4、的高级语言,它里面是不可能逃得了过程化的,没有过程化什么也干不了的。基本上所有语言里面流程控制都一样,所以真正理解好C语言里面的流程控制后对于其它语言都是大同小异。if().else./switch/for/do.while()/while/break/continue/goto/return顺序、选择、循环:、if语句:1)if;2)if.else;3)if.elseif.elseif.else;4)if嵌套:if()if.、if()if.elseif.、switch语句:switch.case.default、while、dowhile();/while后面必须加分号。for/注意:在C语

5、言中,条件表达式可以是逻辑表达式和关系表达式,(=、=、|、!),if(a=1b=7);还可以是赋值表达式、算术表达式甚至是一个变量,只要表达式结果为非0,就按“真“处理,if(a)、if(a=b)、if(1),这跟Java有着严格的区别,在Java语言中条件表达式只能是前者,后者是语法错误。在C语言中中,常量NULL、零值都是false,非零值都是true。if语句可以形成多重嵌套。/一般情况下,多重嵌套代码阅读性差,应尽量避免多重嵌套。16:112011/12/8/首先计算switch中表达式的值,注意:switch表达式有严格的要求,只能是整形、字符型、枚举型,这和Java语言中要求相同

6、(byte、short、int、char、enum)。case后面只能是常量表达式,Java语言中保持相同语法。然后逐个与其后的常量表达式进行比较,当与某个表达式的值相等时,即执行其后的语句,然后比在进行判断,继续执行后面所有case的语句。/换句话说,只要判断出一次相等,就不在进行任何相等性判断,一律按照相等来处理,直接执行所有case语句。如果与所有case都不相等,则执行default语句,然后结束switch语句。但是default是可选的,也就是当没有default语句时,就直接结束switch语句。正因为case语句相等性只判断一次,所以C语言(Java语言)提供了break语句来

7、结束switch语句。/但是在C、Java语言中break语句不是必须的,听说C#中对break是必须的,不然会有语法错误。循环结构(LoopStructure):循环变量(LoopVariable)、循环条件(LoopCondition)、循环体(LoopBody)。while语句、do-while语句/两者之间区别:后者先执行一次循环体,再判断表达式的值。就是说至少会执行一次循环体。do-while后面一定要加分号。/所谓花括号“,它的作用是构成复合语句,当有多条语句时就要使用花括号。注意:有的花括号后面还要加分号,比如结构体、共用体、枚举,而有的花括号后面不需要分号,比如函数。/for语

8、句非常灵活。while循环完全可以转成for循环。for(表达式1;表达式2;表达式3),表达式2一般是关系表达式,eg:i=100;或者逻辑表达式:abb100;但是在C语言中也可以是数值表达式或者变量,只要其值为非零,就可以执行循环。/Java语言和C语言在这点上有严格区别。表达式1一般是设置循环变量初始值的赋值表达式,i=0。表达式3一般是改变循环变量的赋值表达式,i+。/不过要明确一点:表达式1、3还可以是与循环变量无关的其他表达式。for(i=0,sum=0;i=100;sum+=i+);直接可以用一个for就能完成循环,而不用花括号里面的复合语句。for语句中的各个表达式均可省略,

9、但是分号不可省略。/所以说for语句很灵活,因为它的3个表达式都可以省略。当3个表达式都省略时,for(;),相当于while(1)。循环体可以是空语句,eg:“for(;)“,空语句的话可以简化为:“for(;);“。/在VC+6.0中测试:C语言中,“、|“运算符也和Java语言中一样,也有逻辑短路现象。goto语句成为无条件转向语句。/在使用goto语句之前必须先设置标签,即定义一个标记,格式为“lable:“,标号用标识符表示,其命名规则与变量命名规则相同。一般而言,goto语句有两种用途:1)与if语句构成循环,这是goto语句最常用的用途。2)从多层嵌套循环中跳出所有循环。switch语句中可以用break语句,直接结束switch语句转而执行switch后面的语句。break语句的另一个用途是结束循环,转而执行循环之后的语句。注意:break语句不能用于循环语句和switch语句之外的其它任何语句之中。/continue用于结束本次循环,也就是不再执行continue后面的语句,转而执行下一次循环。/continue和break的区别是:continue语句只结束本次循环,而不是中止整个循环的执行;break语句则是结束整个循环,不再进行条件判断。在C语言中,for语句时用的频率最高,while语句其次,do-while语句使用最少。21:222011/12/9

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报