暑假C语言学习总结之一

来源:互联网 发布:mysql安装教程linux 编辑:程序博客网 时间:2024/06/14 21:37

     上次和老师你说了自己的大概情况后,我决定把C语言、数据结构、操作系统系统的复习一遍,现在C语言看到指针部分,因数据结构涉及到很多指针、结构体、链表等知识,所以我打算C基本复习完时再看数据结构,虽然大家基本上都开始学习linux C编程实战这本教材,但我觉得linux内核代码涉及到很多操作系统的原理,所以我想按照原定计划把操作系统复习一遍,因操作系统只看了前面的概述部分,在下面的汇报中主要还是针对C。在学习过程中,我把C教材中遇到的注意点基本都总结在了笔记中,把书本上的代码在电脑上输了一遍,用TC3.0调剂并分析运行的结果再对照书上,也选择一部分课后习题自己动手编程练练,下面是我在看书过程中觉得比较值得注意的知识点:
     1、常量部分:宏常量在使用时因其是编译预处理命令在定义时可能会忘记#符号,在结束时有时又会意外的不加分号,很值得注意!其常量名一般用大写,双引号内与宏名相同的字符串并不进行宏替换。与const常量对比时其有如下缺点:没有数据类型,替换时不进行语法检查,出错时难以发现。另外枚举常量是以前没有注意的一个常量,这次发现它挺有用,使用时也有很多讲究,用法如下:enum 变量名 {,,};在内部标识符赋值时,其数据类型只能是整型,如未赋值则第一个默认赋1,后面的依次增1。
     2、类型转换:一种是强制转换,用法如下(类型)表达式,在使用时只是为了暂时得到转换后的数值类型,并不会改变原变量的类型和数值;另一种则是采用赋值符“=”来实现,在使用时要注意类型自动转换的规则,并要注意是否会发生信息丢失或溢出错误,数值范围由小到大转换是安全的,反之则不安全。
     3、输入/输出函数:scanf()函数的注意点:在格式说明符之间可以有空格、逗号、字符等其他无关字符,但在输入数据时除数值外必须将无关字符原样输入一遍,这个在以前的学习中是根本就没发现的,如果在输入时要输入空格或逗号则特别会容易忽略,希望其他同学也注意一下;另外一个非常重要的地方则是关于格式说明符“%c”,因为它可以读入的字符包括空格和转义字符(如回车),这一点可能会引起很严重的问题,如要输入的数据有两个以上,且有其他型和字符型时,输入一个数据后要按空格或回车,则会将空格或回车赋给了字符变量,导致结果错误,解决办法可以用%1s(数字1)代替%c;printf()函数的注意点:除了详细学习了%e、%g、%p、%n等的用法以及它们的用处外,%%则并非作为格式说明符来作用,而只是输出“%”。
     4、getchar()函数问题:因为此函数采用的是行缓冲输入方式,必须键入“回车”才会返回值,这一点在交互性上有很大的不足,另外也会有诸如格式符%c的问题,也会把空格或回车作为有效字符输入,如一个可循环输入数据的程序,输入一个数据后按空格或回车返回值,则就会把空格或回车当作下一次的输入,导致程序的出错,解决方法可以采用getch()或getche()函数来代替。
     5、开关语句switch:开关语句有时对于多个条件选择时能起到很关键的作用,但要注意switch后括号内表达式的值一般为整型、字符型(如+、-、*、/等可运用于不同的计算分支上,例如计算器)或枚举类型(如yes、no、none等),且必须与case后类型一致;若case后面的语句省略不写,则表示它与后续case分支执行相同的语句;一个case分支一般要与一个break搭配。注意点:case分支包含多个语句时要用{},case与表达式之间要有空格,否则不能执行,case后的常量表达式不能用一个区间表示,也不能出现任何运算符。
     数组和指针虽然学了但还没有好好的总结一下,等下周汇报时再提及,谢谢老师!

原创粉丝点击