暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
C语言解惑:指针、数组、函数和多文件编程.pdf
389
40页
1次
2023-11-27
10墨值下载
C语言编程仍然是编程工作者必备的技能。本书的基础版本《C语言解惑》
[1]
通过比较编程中存在的典型错误,从而实现像雨珠打在久旱的沙滩上一样滴滴入骨的效果,使学习者更容易记住编程的要
诀,并通过演示如何将一个能运行的程序优化为更好、更可靠的程序,使读者提高识别坏程序和好程序的能力。尽管如此,那本书仍然要照顾初学者并兼顾知识的完整性,所以讨论的深度有所限制。为
此,我们决定推出它的提高版,并将讨论聚焦于函数设计。
本书将集中讨论C语言的核心部分——函数设计。函数设计涉及函数类型、函数参数及返回值,这就要求读者熟练掌握指针和数组的知识,此外,还要掌握多文件编程以及多文件之间的参数传递等知
识。
因为本书要求读者已经学过C语言,所以我们可以完整、系统地论述各个部分的内容,无须赘述基础知识。本书的另一个特点是每一章之间都有知识交叉,进而达到讲透的目的。如果遇到不清楚的知
识点,读者可以自行学习相应参考资料,也可以与《C语言解惑》配合学习。
本书的落脚点是实现C语言的结构化程序设计。为实现这一目标,本书专门选择了完整的设计实例。尤其是第10章,结合趣味游戏程序,综合讲解函数设计和多文件编程。
本书各个部分论述详细,涉及的知识面广,有些知识是传统教材中所没有的,所以它既可以作为从事教学的老师及工程技术人员的参考书,也可以作为常备手册。其实,它不仅对工程技术人员极有参
考价值,也能帮助在校生进行编程训练或作为毕业论文的参考资料。此外,本书对于初学者也大有帮助,他们可以将它作为课外读物,对目前看不懂的地方,可以等具备相关知识之后再来研究,彼时将
获更大。总之,本书能帮助各类人群找到自己需要的知识并有所收获,而这也将拓宽本书的应用范围
本书共分10章。第1章通过例子说明引入指针变量的必要性并简单介绍指针变量的基本性质。第2章通过实例解释指针的基本性质。第3章介绍数组及数组的边界不对称性。第4章介绍C语言中两个非常
重要的概念——数组和指针。第5章介绍如何掌握函数设计和调用的正确方法。第6章介绍如何设计合理的函数类型及参数传递方式。第7章先讨论函数设计的一般原则,然后结合典型算法,用实例说明
计的具体方法,以便使读者进一步开阔眼界。第8章结合具体实例详细介绍头文件的编制、多个C语言文件及工程文件的编制等方法,以提高读者的多文件编程能力。第9章给出两个典型的多文件编程实
例,一个使用链表,另一个使用数组。第10章中的游戏程序实例将加深读者对一个完整工程项目的理解。为了学习方便,本书提供全部程序代码。
本书的两位作者分别撰写各章的不同小节,然后逐章讨论并独立成章。刘燕君负责第1~6章,刘振安负责第7~10章,最后由刘振安统稿。参与本书工作的还有周淞梅实验师、苏仕华副教授、鲍运律教
授、刘大路博士、唐军高级工程师等。
在编写过程中,我们得到了中国科学院院士、中国科学技术大学陈国良教授的大力支持,特此表示感谢!对书中所引用资料的作者及网络作品的作者表示衷心感谢
作者
zaliu@ustc.edu.cn
2016年6
[1] 此书已于2014年由机械工业出版社出版,书号978-7-111-47985-7。
1章 
指针在C语言中具有举足轻重的地位,也是编制C程序的基本功之一。本章将通过例子说明引入指针变量的必要性并简单介绍指针变量的基本性质。
1.1 变量的三要
一个变量具有3个要素:数据类型、名字和存放变量的内存地址。本节将简要回顾变量的3个要素,以便为引入指针打下基础。
1.基本数据类型
数据类型是C语言中非常重要的一个概念,它将C语言所处理的对象按其性质不同分为不同的子集,以便对不同类型的数据规定不同的运算。void是无类型标识符,只能声明函数的返回类型,不能声
变量,但可以声明指针。
本节只涉及基本数据类型,C语言的基本数据类型有如下4种。
·char  字符型
·int  整数型
·float  浮点数型(又称为单精度数)
·double  双精度浮点数型
另外还有用于整型的限定词short、long、signed和unsigned。short和long表示不同长度的整型量;unsigned表示无符号整型数(它的存放值总是正的);可以省略signed限定词。例如,可以将如
下声明
short int x;
unsigned int z;
中的说明符int省略。即它们与如下声明
short x;
unsigned z;
是等效的。上述数据类型的长度及存储的值域也随编译器不同而变化,ANSI C标准只限定int和short至少要有16位,而long至少32位,short不得长于int,int不得长于long。表1-1是数据类型的长度
及存储的值域表,表1-1中VC是Visual C++6.0的缩写。表1-2是加了限定词的数据类型及它们的长度和取值范围
C语言提供一个关键字sizeof,用来求出对于一个指定数据类型,编译系统将为它在内存中分配的字节长度。例如,语句“printf("%d",sizeof(double));”的输出结果为8。
注意在表1-1中的标注,在VC中int使用4字节,这是本章计算的依据。
C语言定义的存储类型有4种:auto、extern、static和register,分别称为自动型、外部型、静态型和寄存器型。自动型变量可以省略关键字auto。存储类型在类型之前,即
存储类型 类型
例如auto int和static float等。可以省略auto,其他类型均不可以省略。
表1-1 数据类型的长度及存储的值域
表1-2 加限定词的数据类型及其长度和取值范围
2.变量的名字和变量声明
C语言中大小写字母是具有不同含义的,例如,name和NAME就代表不同的标识符。原来的C语言中虽然规定标识符的长度不限,但只有前8个字符有效,所以对定义为
dwNumberRadio
dwNumberTV
的两个变量是无法区别的。
现在流行的为32位操作系统配备的C编译器已经能识别长文件名,不再受8位的限制。另外,在选取时不仅要保证正确性,还要考虑容易区分,不易混淆。例如,数字1和字母i在一起,就不易辨认。
取名时,还应该使名字有很清楚的含义,例如使用area作为求面积函数的名字,area的英文含义就是“面积”,这就很容易从名字猜出函数的功能。对一个可读性好的程序,必须选择恰当的标识符,取名
应统一规范,以便使读者能一目了然。
在现在的编译系统中,内部名字中至少前31个字符是有效的,所以应该采用直观的名字。一般可以遵循如下简单规律。
1)使用能代表数据类型的前缀。
2)名称尽量接近变量的作用。
3)如果名称由多个英文单词组成,每个单词的第一个字母大写
4)由于库函数通常使用下划线开头的名字,因此不要将这类名字用作变量名。
5)局部变量使用比较短的名字,尤其是循环控制变量(又称循环位标)的名字。
6)外部变量使用比较长且贴近所代表变量的含义。
7)函数名字使用动词,如Get_char(void)。变量使用名词,如iMen_Number。
变量命名可以参考Windows API编程推荐的匈牙利命名法。它是通过在数据和函数名中加入额外的信息,既增进程序员对程序的理解,又方便查错。
所有的变量在使用之前必须声明,所谓声明即指出该变量的数据类型及长度等信息。声明由类型和具有该类型的变量列表组成。如
int lowerupper;
char cname[15];
变量可按任何方式分布在若干个声明中,上述声明同样可以写成:
int lower; // 整数类型
int upper; // 整数类
char c; // 字符类型
char name[15]; // 字符数组,可连续存放15个字符
后一种形式会使源程序冗长,但便于给每个声明加注释,也便于修改
变量的存储类型在变量声明中指定。变量声明的一般形式为
存储类型 类型 变量名列表;
of 40
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜