C语言从入门到精通非常不错
C语言入门至精通(全集)

含义 函数体、分程序、复合语句 条件语句 定义i为整形变量 定义a为一维数组
定义f为返回整形值函数; p为指向整形变量的指针变量; 赋值语句,使i+2赋给I i自增值1,i加1赋给I
通过表1.1 我们可以得出结论:C比 Pascal 简练,因此源程序更短,编程效率高。
<
C语言程序设计
第一章 C语言概述
<>
C语言程序设计
第一章 C语言概述
C语言发展过程
❖产生背景
ALGOL 60→CPL语言→BCPL→B语言,写UNIX系统
❖产生过程
时间:1972~1973 地点:美国贝尔实验室 目的:UNIX操作系统 设计人: Ken.Thompson和Dennis.M.Ritchie
❖C标准
标准C: 1978年 K&R合著《The C Programming Language》
int f(); int *p; i+=2; i++, ++I;
PASCAL语言 BEGIN END IF (e) THEN S; VAR i :INTEGER; VAR a:ARRAY[1..10] OF INTEGER; FUNCTION f():INTEGER; VAR P: INTEGER; i=i+2; i=i+1;
文本编辑:
-------移动光标 PgUp,PgDn------上下翻页 Ctrl+PgUp,Ctrl+PgDn------文件首尾 Home行首 End行尾 Ddelete Insert Bkspace
块操作:
Ctrl+KB-------块开始标记 Ctrl+KK--------块结束标记
C语言入门书籍

C语言入门书籍C语言入门必备书籍推荐C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。
下面店铺来给大家推荐C语言入门必备书籍,希望对大家有帮助!1.C语言入门经典《C语言入门经典》例子简单生活化,而且每个例子分析很细。
章节安排合理,章末的例子还特别注重思路的引导,而且分析起来特别有成就感,这本书是自学过程的一本好书。
2.C primer plus这本书很适合希望系统学习C语言的读者,正如他的名字,是一本不错的入门和进阶的书。
书中的每一个知识点都有很多生动简单的示例,并给出了相应的运行结果。
总之,在看这本书的过程中,有一种一气呵成的感觉。
3.C和指针这本书和《专家编程》《C缺陷和陷阱》可以并称C语言(进阶书)三杰。
本书的部分内容更适合有C基础的人看。
如ADT、递归、指针和数组的部分,书中所述的思想是国内教材所缺乏的。
看完本书,能得到一个正确的.C语言观。
4.C程序设计语言难以置信的是,这样一本C语言的入门书籍,从hello world开始讲起,却在短小的篇幅里,手把手教你写了stdio.h stdlib.h string.h 当中大部分例程,实现了二分查找、快速排序、二叉树、哈希表这些重要的数据结构和算法。
这本书传递着一种简单、优雅、平实和闲适。
5.C专家编程《C专家编程》展示了最优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。
书中C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及如何进一步学习C++等问题进行了细致的讲解和深入的分析。
本书可以帮助有一定经验的C程序员成为C编程方面的专家,对于具备相当的C语言基础的程序员,本书可以帮助他们站在C的高度了解和学习C++。
c语言从入门到精通__第13章

13.1.1 文件类型
例如,对于整数12345,在文本文件中存放时,数字“1”,“2”, “3”,“4”,“5”都以字符的形式各占一个字节,每个字节中存 放的是这些字符的ASCII值,所以要占用5个字节的存储空间;而 在二进制文件中存放时,因为是整型数据所以系统分配两个字节 的存储空间,也就是说,整数12345在二进制文件中占用两个字 节。其存放形式如下图: 在文本文件中存储形式:
13.1.2 C如何操作文件——文件指针
在C语言中所有对文件的操作都通过文件指针完成。 我们在前面已经学习过变量的指针,变量的指针指 向该变量的存储空间;但文件的指针不是指向一段 内存空间,而是指向描述有关这个文件的相关信息 的一个文件信息结构体,该结构体定义在stdio.h 头文件中,当然,用户也无需了解有关此结构体的 细节,只要知道如何使用文件指针就可以了,和普 通指针一样,文件指针在使用之前,也必须先进行 声明。
fclose(fp); /*fp是指向要关闭的文件的文件指针*/
13.2.2 文件的关闭——fclose()函数
技 巧:因为保持一个文件的打开状态需要 占用内存空间,所以对文件的操作一般应该 遵循“晚打开,早关闭”的原则,避免无谓 的浪费。
13.2.3 文件结束检测——feof()函数
feof()函数用于检测文件是否结束,既适用 于二进制文件,也适用于文本文件。其一般 使用格式如下:
第13章
文件
文件概述 文件的打开和关闭 文件的顺序读写 文件的随机读写 综合应用——文件操作 跟我上机
第13章
文件
文件概述 文件的打开和关闭 文件的顺序读写 文件的随机读写 综合应用——文件操作概述 文件的打开和关闭 文件的顺序读写 文件的随机读写 综合应用——文件操作 跟我上机
1、C语言从入门到精通一一概述

1、C语言从入门到精通一一概述目录•o 1.1、什么是程序o 1.2、why is c语言o 2.3、C语言的诞生小故事o 2.4、C语言发展历程o 2.5、C语言的特点o 2.6、C程序的开发工具o 2.7、安装VC++2010Expresso▪ 2.7.1、VC++2010Express基本介绍▪ 2.7.2、VC++2010Express安装流程o 2.8、安装VC6.0中文版下载(支持XP、Win7、Win8、Win10)o▪ 2.8.1说明o 2.9、C程序开发快速入门o▪ 2.9.1、需求说明▪ 2.9.2、开发步骤o 2.10、C程序运行机制o▪ 2.10.1C程序运行机制(过程)简述▪ 2.10.2、C程序执行流程图解分析o 2.11、小练习o 2.12、编译、链接和运行详解o▪ 2.12.1、什么是编译▪ 2.12.2、什么是链接▪ 2.12.3、什么是运行▪ 2.12.4、C程序开发注意事项o 2.13、C程序开发注意事项o 2.14、C转义字符o▪ 2.14.1、C常用的转义字符▪ 2.14.2、应用实例o 2.15、常见问题和解决方法o 2.16、注释(comment)o▪ 2.16.1、介绍:▪ 2.16.2、C中的注释类型▪ 2.16.3、单行注释:▪ 2.16.4、使用细节o 2.17、规范的代码风格o 2.18、小练习1.1、什么是程序程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合举例:#include <stdio.h>void main(){printf('hello,world!');}1.2、why is c语言2.3、C语言的诞生小故事1、为什么发明C语言:C语言的诞生是和UNIX操作系统的开发密不可分的,原先的UNIX操作系统都是用汇编语言写的,1973年UNIX操作系统的核心用C语言改写,从此以后,C语言成为编写操作系统的主要语言2、C语言对其它语言的影响:很多编程语言都深受C语言的影响,比如C++(原先是C语言的一个扩展)、C#、Java、PHP、Javascript、Perl、LPC和UNIX的CShell等。
C语言入门教程(精华版)

C语言入门教程(精华版)C语言是一种广泛使用的计算机编程语言,它被广泛应用于操作系统、嵌入式系统、系统软件和应用程序等领域。
C语言具有高效、灵活和可移植性强的特点,是许多高级编程语言的基础。
本教程旨在帮助初学者快速入门C语言编程,我们将从C语言的基本语法、数据类型、运算符、控制结构等方面进行讲解。
通过本教程的学习,你将能够掌握C语言的基础知识,并能够编写简单的C语言程序。
第一部分:C语言的基本语法1. 预处理器指令:用于在程序编译之前执行一些特定的操作,如包含头文件、定义宏等。
2. 主函数:C语言程序的入口点,程序从这里开始执行。
3. 变量声明:用于声明程序中使用的变量,包括变量的类型和名称。
4. 语句:C语言中的执行单元,用于执行特定的操作,如赋值、输入输出等。
5. 函数:用于实现特定的功能,可以重复使用。
在C语言中,每个语句都以分号(;)结束。
C语言中的注释用于解释代码,单行注释以两个斜杠(//)开始,多行注释以/开始,以/结束。
C语言入门教程(精华版)C语言是一种广泛使用的计算机编程语言,它被广泛应用于操作系统、嵌入式系统、系统软件和应用程序等领域。
C语言具有高效、灵活和可移植性强的特点,是许多高级编程语言的基础。
本教程旨在帮助初学者快速入门C语言编程,我们将从C语言的基本语法、数据类型、运算符、控制结构等方面进行讲解。
通过本教程的学习,你将能够掌握C语言的基础知识,并能够编写简单的C语言程序。
第一部分:C语言的基本语法1. 预处理器指令:用于在程序编译之前执行一些特定的操作,如包含头文件、定义宏等。
2. 主函数:C语言程序的入口点,程序从这里开始执行。
3. 变量声明:用于声明程序中使用的变量,包括变量的类型和名称。
4. 语句:C语言中的执行单元,用于执行特定的操作,如赋值、输入输出等。
5. 函数:用于实现特定的功能,可以重复使用。
在C语言中,每个语句都以分号(;)结束。
C语言中的注释用于解释代码,单行注释以两个斜杠(//)开始,多行注释以/开始,以/结束。
c语言从入门到精通__第12章

12.1.1 指针与数组
&grade[3]=&grade[0] + 3 * 4 上面表达式的含义是gradep[3]的地址等于grade[0]地址加上12。写成以下 的通式: 数组中下标为N元素的地址 = 数组的首地址 + N * sizeof(DataType) 例如: int grade[5]; /*定义array为包含5个整型数据的数组*/ int *p; /*定义p为指向整型变量的指针变量*/ p=&grade[0];
12.1.2 数组名作为指针
每个创建的数组,数组名就成为编译器为这 个数组所创建的指针常量名称,存储的是数 组第一个元素的起始地址,也是我们所说的 数组首地址。这样,我们就有多了一种获取 数组元素地址的手段。如【范例12-1】中 代码“p=&grade[0];”就可以改写为 “p=grade;”。
例如:输入字符串“abcdefgabcdeabc”,输出的 结果应该是“3 3 3 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0”
12.2 指针与字符串
12.2.1 12.2.2 12.2.3 12.2.4 使用指针创建字符串 使用指针处理字符串 指针的指针 指针数组和数组指针
指针与数组 指针与字符串 综合应用——报数游戏 跟我上机
第12章
指针的深入研究——指针进阶
指针与数组 指针与字符串 综合应用——报数游戏 跟我上机
12.1 指针与数组
12.1.1 12.1.2 12.1.3 12.1.4 指针与数组 数组名作为指针 指针与多维数组 指针与数组参数
12.1.1 指针与数组
12.2.1 使用指针创建字符串
C语言入门教程:c语言从入门到精通(2016最新版)

C语言入门教程:c语言从入门到精通(2016最新版)这部教程由C语言中文网站长执笔,将多年的编程经验灌输其中,典型的实践派。
这部教程已经发布了 4 年,经历了 5 次大改版,请猛击《关于作者》《如何才能完成这部教程》了解教程背后的故事。
本教程将带你做出贪吃蛇小游戏和学生信息管理系统,让你学以致用,培养编程思维,请猛击这里进行预览。
说明:蓝色链接为初级教程,大学课堂、网络上的书籍和视频大都会涉及这些知识,我们将其免费,但我们做得更好。
红色链接为高级教程或项目实践,能够让读者认识到C语言的本质,开发出实用的项目,需要开通VIP会员才能阅读。
第1章编程基础1.什么是编程语言2.为什么入门首选C语言3.初学者最常问的几个问题4.C和C++到底有什么关系5.学了C语言能做什么,找什么工作6.与编程相关的计算机硬件7.载入内存,让程序运行起来8.数据的存储以及二进制思想9.八进制和十六进制10.进制之间的转换11.ASCII编码与Unicode编码12.程序员的发展方向和薪水13.不要这样学习C语言,这是个坑!14.明白了这点才能拿高薪!第2章 C语言初探1.C语言在屏幕上显示内容2.C语言编译器和IDE的选择3.在C-Free下运行C语言程序4.在VC6.0下运行C语言程序5.在VS下运行C语言程序6.在Linux下运行C语言程序7.在苹果电脑上运行C语言程序8.在手机上运行C语言程序9.制作安装包,让用户安装程序10.C语言程序的错误和警告11.分析第一个C语言程序(重点)12.C语言转义字符13.C语言中的空白符14.彩色版的C语言,让文字更漂亮15.一个真正带界面的C语言程序第3章变量和数据类型1.大话C语言变量和数据类型2.在屏幕上输出各种类型的数据3.C语言中的整数(short,int,long)4.C语言中的正负数以及数值溢出5.整数在内存中是如何存储的6.C语言中的小数(float,double)7.小数在内存中是如何存储的8.C语言中的字符(char)9.C语言标识符、关键字和注释10.C语言加减乘除运算11.C语言自增(++)和自减(--)12.变量的定义位置以及初始值13.C语言的两套标准14.运算符的优先级和结合性15.C语言数据类型转换第4章 C语言输入输出1.数据输出大汇总以及轻量进阶2.在屏幕的任意位置输出字符3.从键盘输入数据4.C语言缓冲区(缓存)5.结合缓冲区谈scanf()函数6.C语言清空缓冲区7.结合缓冲区谈字符的输入8.C语言程序的暂停9.C语言模拟密码输入(显示星号)第5章分支结构和循环结构1.C语言if else语句2.C语言关系运算符3.C语言逻辑运算符4.C语言switch语句5.C语言条件运算符6.C语言while语句7.C语言for循环8.C语言跳出循环9.C语言循环结构的嵌套10.C语言循环总结以及实例讲解11.一个内存溢出的例子第6章 C语言数组1.C语言数组的概念2.C语言二维数组3.C语言字符数组和字符串4.C语言字符串处理函数5.C语言字符串的输入输出6.数组的静态性、越界以及溢出7.C语言变长数组8.对数组的总结以及实例讲解9.非阻塞式键盘监听10.C语言获取随机数第7章 C语言函数1.C语言函数概述2.C语言函自定义函数3.函数的参数和返回值4.从函数调用发现程序运行的秘密5.C语言函数的声明以及函数原型6.函数的递归调用7.局部变量和全局变量8.忽略语法细节,从整体上理解函数第8章预处理命令1.预处理概述和文件包含命令2.C语言宏定义3.C语言带参数宏定义4.带参宏定义和函数的区别5.宏参数的字符串化和宏参数的连接6.C语言中几个预定义宏7.C语言条件编译8.#error命令,阻止程序编译9.预处理指令总结第9章 C语言指针1.1分钟彻底理解指针的概念2.大话C语言指针变量3.C语言指针变量的运算4.数组指针(指向数组的指针)5.字符串指针(指向字符串的指针)6.C语言数组灵活多变的访问形式7.C语言指针变量作为函数参数8.用C语言指针作为函数返回值9.二级指针(指向指针的指针)10.空指针NULL以及void指针11.注意,数组和指针绝不等价12.数组在什么时候会转换为指针13.指针数组(每个元素都是指针)14.一道题目教你玩转指针数组15.C语言指针与二维数组16.函数指针(指向函数的指针)17.只需一招,彻底攻克C语言指针18.用main()函数接收控制台数据19.关于指针的总结第10章结构体、位运算以及其他1.C语言结构体(Struct)2.C语言结构体数组3.C语言结构体和指针4.C语言枚举类型(Enum)5.C语言共用体(Union)6.大端小端以及判别方式7.C语言位域(位段)8.C语言位运算9.对数据或文件内容进行加密10.用typedef给类型起一个别名11.C语言const:禁止修改变量的值第11章文件操作1.C语言文件概述2.C语言文件的打开与关闭3.文本文件与二进制文件的区别4.以字符形式读写文件5.以字符串的形式读写文件6.以数据块的形式读写文件7.C语言格式化读写文件8.C语言文件的随机读写9.C语言实现文件复制功能10.FILE结构体以及缓冲区深入探讨11.C语言获取文件大小(长度)12.插入、删除、更改文件内容第12章 C语言排序和查找1.C语言选择排序算法及代码2.C语言冒泡排序算法及代码3.C语言插入排序算法及代码4.C语言快速排序算法及代码5.C语言归并排序算法及代码6.C语言顺序查找算法及代码7.C语言二分查找算法及代码第13章 C语言调试1.调试的概念以及调试器的选择2.设置断点,开始调试3.查看和修改变量的值4.单步调试5.即时窗口的使用6.查看、修改运行时的内存7.有条件断点的设置8.assert断言函数9.调试信息输出10.VS调试的总结以及技巧。
计算机C语言入门到精通文档资料

知识扩展 2.转义字符
有些以“\”开头的特殊字符称为转义字符 \n 换行 \t 横向跳格 \r 回车 \\ 反斜杠 \ddd 1到3位八进制数所代表的字符 \xhh 1到2位十六进制数所代表的字符
21
知识扩展 3.格式化输出
输出时几种常见的格式符的修饰符:
l:用于长整型整数,可加在格式符d,o,x,u前面 m(代表一个正整数):数据最小宽度 n(代表一个正整数):对实数,表示输出n位小数;
16
程序运行结果为:
补充 例:从键盘任意输入两个整数,求其和。
17
知识扩展 1.数据类型
1.整型数据的分类
根据占用内存字节数的不同,整型数据又分为3类:
基本整型(类型关键字为int)。
短整型(类型关键字为short int或short)。
长整型(类型关键字为long int或long)。
在visual c++中,long型占4字节,int型占4字节,short型占 2字节。
13
(五)格式化输入──scanf()函数
scanf(“%d,%d”,&a,&b); scanf(“%d%d”,&a,&b);
14
有两个人A,B,在数学考试中获得87和76的成绩, 请输入A,B两人的代号及成绩,输出成绩。 分析:此题就是考查输入输出语句,注意整数输入/输入的格式 用%d,字符变量的输入/输出格式用%c,同时注意输入语句中 的两个数据之间用什么符号隔开,则在程序运行输入数据时也 要用同样的符号隔开两个数据。
%d 带符号十进制整数。 %f带符号十进制小数形式(默认6位小数)。 %c输出一个字符。 (2) 转义字符 例1-1中的printf()函数中的”\n”就是转义字符,输出时产生一个“换 行”。 (3) 普通字符──除格式指示符和转义字符之外的其它字符。例1-1中的 printf(“x=%d,y=%d,z=%d\n”,x,y,z);的“x=”、“y=”、“z=”,格式字符 串中的普通字符,原样输出。在汉字系统环境下,允许使用汉字。 2. 输出项表 输出项表是可选的。在输出项中,列出要输出的任意类型的数据。如果 要输出的数据不止一个,相邻9 2个之间用逗号分开。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
画点函数 putpixel(x, y, color); 作用:将在坐标x、y指定的位置上画一点, 该点的颜色由color值决定。
画线函数 line(startx, starty, endx, endy); 作用:在(startx, starty)和(endx, endy)两点 间画一直线,颜色为系统当前颜色。
2、在上一个例子中,程序要能够编译运行,需建立 一个工程文件f12.prj,其内容为:
f1.c f2.c 然后对f12.prj文件编译运行即可。 3、也可以在f1.c文件开头加一预处理命令:
#include<stdio.h> #include<f2.c> int var=8; main() { …… } 对f1.c文件直接编译运行即可。
12.1 12.2 12.3 12.4 12.5
多模块编程方法 图形处理应用 操作系统接口应用 C语言与汇编语言混合编程 综合应用程序举例—汉字显示技术
返回
第12章 C语言综合应用程序举例
12.1 多模块编程方法
一个有实用价值的C语言应用程序往往较大,需 要划分成不同的模块,分配给不同的程序员去完成。 因此,在实用软件的开发中,往往需要采用多模块编 程技术。
画圆函数 circle(x, y, radius); 作用:用当前颜色画一个圆心在(x,y)处,半 径大小为radius的圆。
上一页下一页
第12章 C语言综合应用程序举例
⑵ 画圆弧、扇形、椭圆函数
画圆弧函数 arc(x, y,start, end, radius); 作用:用当前颜色,以(x,y)为圆心,(start,end) 为起 止角,radius为半径画圆弧。
设程序模块文件 f1.c 的内容如下:
#include<stdio.h>
int var=8;
/* 全局变量的定义 */
main()
{ printf(“%d”,var);
proc1();
printf(“%d\n”,var);
}
上一页下一页
Байду номын сангаас
第12章 C语言综合应用程序举例
程序模块文件f2.c 的内容如下:
⑷ 恢复显示方式函数closegraph( ) 作用:关闭图形系统,返回文本工作方式。
⑸ 恢复工作模式函数restorecrtmode( ) 设置图形工作模式函数setgraphmode( ) 作用:使显示器工作方式在图形和文本方式 之间来回切换。
上一页下一页
第12章 C语言综合应用程序举例
2、基本图形函数
上一页 返回
第12章 C语言综合应用程序举例
12.2 图形处理应用
图形处理是计算机应用的一个极具特色的领域,有 很好的应用前景,可以增强程序的趣味性、实用性。
12.2.1 基本图形处理库函数 Turbo C支持多种显示适配器的各种显示模式,提
供了画点、线、圆、椭圆、多边形以及输出各种字 体等功能的函数。
这些函数包含在图形头文件(graphics.h)中,在 进行目标程序连接时,也必须将图形库文件 graphics.lib 连 接 到 目 标 程 序 中 去 , 其 图 形 接 口 还 包 括图形显示驱动程序(*.BGI)等。
上一页下一页
第12章 C语言综合应用程序举例
1、图形系统初始化函数
⑴ 显示模式控制函数initgraph(gd,gm,path)
上一页下一页
第12章 C语言综合应用程序举例
⑵ 自动检测显示器硬件的函数detectgraph(gd,gm) 作用:当编程者不知所用的图形适配器的类型, 或者需要编写在不同图形模式下均能运行 的图形程序,使用该函数可以完成对适配 器的检查,获取显示器类型号(赋给gd) 及相应的显示模式(赋给gm)。 例如:图形初始化部分可以写成:
extern int var;
/* 外部变量的说明 */
proc1()
程序编译连接
{
生成可执行文
var = 25 ;
件,执行结果
}
为: 8 25
12.1.3 预处理命令#include的应用
1、#include命令经过预处理后,会将其后有关文件 的内容拷贝到命令所在的源程序文件中。
上一页下一页
第12章 C语言综合应用程序举例
int gd, gm; detectgraph(&gd,&dm); /*自动测试硬件 */
initgraph(&gd, &gm, “\\TC” ); /* 根据测试结果进行图形初始化 */
上一页下一页
第12章 C语言综合应用程序举例
⑶ 清屏函数cleardevice( ) 作用:用于画图前进行清除屏幕; 作用范围为整个屏幕。
作用:将一个图形驱动程序装入内存,并将系统设置成 图形模式;
说明:gd指定所用的图形驱动程序,其值可参照书上 的图形驱动程序常量表; gm说明初始化的图形模式,其取值见附录; path指定驱动程序目录路径,空字符时表示驱动 程序就在当前目录下。
例如:若已知所用的图形适配器为CGA,并打算使用 640×200高分辨率模式CGAHI,则图形初始化 部分可写成:int gd = CGA, gm = CGAHI; initgraph(&gd, &gm, “\\TC” );
12.1.1 程序模块组织
使用多模块编程技术的处理过程大致如下: 1、首先将一个大的源程序根据其功能合理地划分成 若干个小的源程序,每个小源程序均以程序文件(.C) 的形式保存在磁盘上。并建立一个包括各个源程序 模块的文件名的工程文件(.prj)。
上一页下一页
第12章 C语言综合应用程序举例
2、然后用编译器进行编译,将工程文件中指定的 多个源程序文件进行编译,生成多个目标文件和一 个可执行文件。注意,在分模块单独编译处理的各 个程序模块中,必须有且只有一个主函数 main( ) 。 12.1.2 模块之间的通信 1、使用外部变量
即一个程序文件file1.c中定义一个外部变量,另 一个程序文件file2.c中的函数可以通过外部变量说明 后来使用这个变量,以实现模块间的通信。
说明形式:extern 类型说明符 外部变量名 ;
注意:只是进行了说明,并不是变量定义
上一页下一页
第12章 C语言综合应用程序举例
2、举例
利用外部变量实现程序模块f1.c与程序模块f2.c之 间的通信。