C 语言教程
C
语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移
植与开发
UNIX
操½系统,丹尼斯·里奇在贝尔电话实验室设计开发了
C
语言
。
C
语言是一种广泛½用的计算机语言,它与
Java
编程语言一样普及,二者在
现代½件程序员之间½得到广泛½用。
½前最新的
C
语言标准为
C18
,在它之前的
C
语言标准有
C17、C11...C99
等。
编译/执行 C 程序
实例
#½½½½½½½ <½½½½½.½>
½½½ ½½½½()
½
/* 我的第一个 C 程序 */
½½½½½½("H½½½½, W½½½½! \½");
½½½½½½ 0;
½
实例解析:
所有的 C 语言程序½需要包含 ½½½½() ½数。 代码从 ½½½½() ½数开始执行。
/* ... */ 用于注释说明。
½½½½½½() 用于格式化输出到屏幕。½½½½½½() ½数在 "½½½½½.½" 头文件中声明。
½½½½½.½ 是一个头文件 (标准输入输出头文件) , #½½½½½½½ 是一个预处理½令,用来引入头文件。 ½编译器遇到
½½½½½½() ½数时,如果没有找到 ½½½½½.½ 头文件,会发生编译错误。
½½½½½½ 0; 语句用于表示退出程序。
C 简介
C 语言是一种通用的高级语言,最初是由丹尼斯・里奇在贝尔实验室为开发 UNIX 操½系统而设计的。C 语
言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。
在 1978 年,布莱恩・柯林汉(B½½½½ K½½½½½½½½)和丹尼斯・里奇(D½½½½½ R½½½½½½)制½了 C 的第一个公
开可用的描述,现在被称为 K&R 标准。
UNIX 操½系统,C编译器,和几乎所有的 UNIX 应用程序½是用 C 语言编写的。由于各种原因,C 语言现在
已经成为一种广泛½用的专业语言。
易于学习。
结构化语言。
它产生高效率的程序。
它可以处理底层的活动。
它可以在多种计算机平台上编译。
1
关于 C
C 语言是为了编写 UNIX 操½系统而被发明的。
C 语言是以 B 语言为基础的,B 语言大概是在 1970 年被引进的。
C 语言标准是于 1988 年由美½½家标准协会(ANSI,全称 A½½½½½½½ N½½½½½½½ S½½½½½½½ I½½½½½½½½)制定的
截至 1973 年,UNIX 操½系统完全½用 C 语言编写。目前,C 语言是最广泛½用的系统程序设计语言。大多
数先进的½件½是½用 C 语言实现的。½今最流行的 L½½½½ 操½系统和 RDBMS(R½½½½½½½½½ D½½½½½½½
M½½½½½½½½½ S½½½½½:关系数据库管理系统) M½SQL ½是½用 C 语言编写的。
为什么要½用 C?
C 语言最初是用于系统开发工½,特别是组成操½系统的程序。由于 C 语言所产生的代码运行速度与汇编语言
编写的代码运行速度几乎一样,所以采用 C 语言½为系统开发语言。下面列举几个½用 C 的实例:
操½系统 语言编译器 汇编器 文本编辑器 打印机 ½络驱动器 现代程序 数据库 语言解释
器 实½工具
C 程序
一个 C 语言程序,可以是 3 行,也可以是数百万行,它可以写在一个或多个扩展名为 ".½" 的文本文件中,例
如,½½½½½.½。您可以½用 "½½"、"½½½" 或任½其他文本编辑器来编写您的 C 语言程序。
本教程假定您已经知道如½编辑一个文本文件,以及如½在程序文件中编写源代码。
C11
C11(也被称为C1X)指ISO标准ISO/IEC 9899:2011,是½前最新的C语言标准。在它之前的C语言标准为
C99。
新特性
对½处理(A½½½½½½½½)的标准化(包括_A½½½½½½标志符,½½½½½½½运算符,½½½½½½½_½½½½½½数以及<½½½½½½½½.
½>头文件)。
_N½½½½½½½ ½数标记,类似于 ½½½ 的 __½½½½½½½½½__((½½½½½½½½))。
_G½½½½½½ 关键字。
多线程(M½½½½½½½½½½½½½)支持,包括:
_T½½½½½_½½½½½存储类型标识符,<½½½½½½½.½>头文件,里面包含了线程的创建和管理½数。
_A½½½½½类型修饰符和<½½½½½½½½½.½>头文件。
增强的U½½½½½½的支持。基于C U½½½½½½技术报告ISO/IEC TR 19769:2004,增强了对U½½½½½½的支持。包括
为UTF-16/UTF-32编码增加了½½½½16_½和½½½½32_½数据类型,提供了包含½½½½½½½字符串½换½数的头文件<
½½½½½.½>。
删除了 ½½½½() ½数,½用一个新的更安全的½数½½½½_½()替代。
增加了边界检查½数接口,定义了新的安全的½数,例如 ½½½½½_½(),½½½½½½_½() 等等。
增加了更多浮点处理宏(宏)。
匿名结构½/联合½支持。这个在½½½早已存在,C11将其引入标准。
静态断言(S½½½½½ ½½½½½½½½½½),_S½½½½½_½½½½½½(),在解释 #½½ 和 #½½½½½ 之后被处理。
新的 ½½½½½() 模式,("…½")。类似 POSIX 中的 O_CREAT½O_EXCL,在文件锁中比较常用。
新增 ½½½½½_½½½½() ½数½为第三种终止程序的方式。½ ½½½½()失败时可以做最少的清理工½。
2
C 环境设½
本地环境设½
如果您想要设½ C 语言环境,您需要确保电脑上有以下两款可用的½件,文本编辑器和 C 编译器。
文本编辑器
这将用于输入您的程序。文本编辑器包括 W½½½½½½ N½½½½½½、OS E½½½ ½½½½½½½、B½½½½、E½½½½½½、
EMACS 和 ½½½/½½。
文本编辑器的名称和版本在不同的操½系统上可½会有所不同。例如,N½½½½½½ 通常用于 W½½½½½½ 操½系统
上,½½½/½½ 可用于 L½½½½/UNIX 操½系统上。
通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。C 程序的源文件通常½用扩展名 .½。
在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个
文件中,编译并执行它。
C 编译器
写在源文件中的源代码是人类可读的源。它需要"编译",½为机器语言,这样 CPU 可以按给定指令执行程序。
C 语言编译器用于把源代码编译成最终的可执行程序。这里假设您已经对编程语言编译器有基本的了解了。
最常用的免费可用的编译器是 GNU 的 C/C++ 编译器,如果您½用的是 HP 或 S½½½½½½,则可以½用各自操½
系统上的编译器。
以下部分将指导您如½在不同的操½系统上安装 GNU 的 C/C++ 编译器。这里同时提到 C/C++,主要是因为
GNU 的 ½½½ 编译器适合于 C 和 C++ 编程语言。
现在电脑发展很快,Windows10 ½已出了多年,这边建议可以下½½微½的 visual stdio 2019 (早年版本也行
,不过我喜欢最新版),微½官½就½下½½,有个免费版的,对于个人入门学习½用已经足够。
C 程序结构
C Hello World
实例
C
程序主要包括以下部分:
预处理器指令
½数
变量
语句
&
表达式
注释
让我们看一段简单的代码,可以输出单词
"Hello World":
实例
#½½½½½½½ <½½½½½.½>
½½½ ½½½½()
½
/* 我的第一个 C 程序 */
½½½½½½("H½½½½, W½½½½! \½");
½½½½½½ 0;
½
接下来我们讲解一下这段程序:
1、程序的第一行 #½½½½½½½ <½½½½½.½> 是预处理器指
令,告诉 C 编译器在实际编译之前要包含 ½½½½½.½ 文
件
2、下一行 ½½½ ½½½½() 是主½数,程序从这里开始执行
3、下一行 /*...*/ 将会被编译器½略,这里放½程序的
注释内容。它们被称为程序的注释。
4、下一行 ½½½½½½(...) 是 C 中另一个可用的½数,会在
屏幕上显示消息 "H½½½½, W½½½½!"。
5、下一行 ½½½½½½ 0; 终止 ½½½½() ½数,并返回值 0。
3
C 基本语法
我们已经看过 C 程序的基本结构,这将有助于我们理解 C 语言的其他基本的构建块。
C 的令牌(T½½½½)
C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。
例如,下面的 C 语句包括五个令牌: ½½½½½½("H½½½½, W½½½½! \½");
这五个令牌分别是:
½½½½½½
(
"H½½½½, W½½½½! \½"
)
;
分号 ;
在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实½的结束。
注释
C 语言有两种注释方式:1、
// 单行注释
2、 /*
多行注释
多行注释
多行注释
*/
以 // 开始的单行注释,这种注释可以单独占一行。
/* */ 这种格式的注释可以单行或多行。
您不½在注释内嵌套注释,注释也不½出现在字符串或字符值中。
标识符
C 标识符是用来标识变量、½数,或任½其他用户自定义项目的名称。一个标识符以字母 A-Z 或 ½-½ 或下划线 _
开始,后跟零个或多个字母、下划线和数字(0-9)。
C 标识符内不允许出现标点字符,比如 @、¥ 和 %。C 是区分大小写的编程语言。因此,在 C 中,M½½½½½½½
和 ½½½½½½½½ 是两个不同的标识符。下面列出几个有效的标识符:
mohd
zara abc move_name a_123
myname50 _temp j a23b9
retVal
关键字
下表列出了 C 中的保留字。这些保留字不½½为常量名、变量名或其他标识符名称。
4
5
评论