跳过正文
  1. 文章/
  2. C/
  3. C语言基础/

1、C语言

·2568 字·6 分钟· loading · loading · ·
C C语言基础
GradyYoung
作者
GradyYoung
C语言基础 - 点击查看当前系列文章
§ 1、C语言 「 当前文章 」

什么是C
#

C 语言是一种通用的高级语言,1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritch )和肯·汤普逊(Ken Thompson )在开发UNIX操作系统时设计了C语言。

在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述,现在被称为 K&R 标准。

C语言是可移植方面的佼佼者。从8位微处理器到克雷超级计算机,许多计算机体系结构都可以使用C编译器(C编译器是把C代码转换成计算机内部指令的程序)。

C语言广泛应用于以下开发场景:操作系统、语言编译器、汇编器、文本编辑器、后台打印服务(Print Spooler)、网络驱动器、现代程序、数据库、语言解释器、实体工具

C语言优点
#

  • 易于学习。
  • 结构化语言。
  • 它产生高效率的程序。
  • 它可以处理底层的活动。
  • 它可以在多种计算机平台上编译。

关于C
#

  • C 语言是为了编写 UNIX 操作系统而被发明的。
  • C 语言是以 B 语言为基础的,B 语言大概是在 1970 年被引进的。
  • C 语言标准(ANSI/ISOC89C90ANSI C)是于 1989 年由美国国家标准协会ANSI(American National Standard Institute)制定的。
  • 截至 1973 年,UNIX 操作系统完全使用 C 语言编写。
  • 目前,C 语言是最广泛使用的系统程序设计语言。
  • 大多数先进的软件都是使用 C 语言实现的。
  • 当今最流行的 Linux 操作系统和 RDBMS MySQL 都是使用 C 语言编写的。

C语言标准
#

C89/C90
#

美国国家标准协会(ANSI)于1983年组建了一个委员会(X3J11),开发了一套新标准,并于1989年正式公布。该标准(ANSI C)定义了C语言和C标准库。国际标准化组织于1990年采用了这套C标准(ISO C)。ISO C和ANSI C是完全相同的标准。ANSI/ISO标准的最终版本通常叫作C89(因为ANSI于1989年批准该标准)或C90 (因为ISO于1990年批准该标准)。另外,由于ANSI先公布C标准,因此业界人士通常使用ANSI C。

在该委员会制定的指导原则中,最有趣的可能是**:保持C的精神**,委员会在表述这一精神时列出了以下几点:

  • 信任程序员;
  • 不要妨碍程序员做需要做的事;
  • 保持语言精练简单;
  • 只提供一种方法执行一项操作;
  • 让程序运行更快,即使不能保证其可移植性。

C99
#

1994年,ANSI/ISO联合委员会(C9X委员会)开始修订C标准,最终发布了C99标准。

C11
#

标准委员会在2007年承诺C标准的下一个版本是C1X,2011年终于发布了C11标准。

C程序
#

编写C程序的步骤
#

  • 定义程序的目标:在动手写程序之前,要在脑中有清晰的思路。想要程序去做什么首先自己要明确自己想做什么,思考你的程序需要哪些信息,要进行哪些计算和控制,以及程序应该要报告什么信息。在这一步骤中,不涉及具体的计算机语言,应该用一般术语来描述问题。
  • 设计程序:对程序应该完成什么任务有概念性的认识后,就应该考虑如何用程序来完成它。例如,用户界面应该是怎样的?如何组织程序?目标用户是谁?准备花多长时间来完成这个程序?
  • 编写代码:设计好程序后,就可以编写代码来实现它。也就是说,把你设计的程序翻译成C语言。这里是真正需要使用C语言的地方。可以把思路写在纸上,但是最终还是要把代码输入计算机。
  • 编译:生成一个用户可以运行的可执行文件,其中包含着计算机能理解的机器码。编译器还会检查C语言程序是否有效。如果C编译器发现错误,就不生成可执行文件并报错。
  • 运行程序:运行可执行程序。
  • 测试和调试程序:检查程序是否按照你所设计的思路运行。
  • 维护和修改代码:创建完程序后,你发现程序有错,或者想扩展程序的用途,这时就要修改程序。

HelloWorld
#

一个 C 语言程序,可以写在一个或多个扩展名为 .c文本文件中,例如,hello.c

#include <stdio.h>
 
int main()
{
    /* 我的第一个 C 程序 */
    printf("Hello, World! \n");
 
    return 0;
}

基本结构

  • 所有的 C 语言程序都需要包含main()函数。 代码从main()函数开始执行。
  • /* */:用于注释说明。
  • printf():用于格式化输出到屏幕。printf()函数在stdio.h头文件中声明。
  • stdio.h:是一个头文件 (标准输入输出头文件) , #include是一个预处理命令,用来引入头文件。 当编译器遇到printf()函数时,如果没有找到 stdio.h头文件,会发生编译错误。
  • return 0;:用于表示退出程序。

工程、项目
#

程序是一个比较宽泛的称呼,它可以细分为很多种类,例如:

  • 有的程序不带界面,完全是“黑屏”的,只能输入一些字符或者命令,称为控制台程序(Console Application),例如 Windows 下的 cmd.exe,Linux 或 Mac OS 下的终端(Terminal)。
  • 有的程序带界面,看起来很漂亮,能够使用鼠标点击,称为GUI程序(Graphical User Interface Program),例如 QQ、迅雷、Chrome 等。
  • 有的程序不单独出现,而是作为其它程序的一个组成部分,普通用户很难接触到它们,例如静态库、动态库等。

不同的程序对应不同的工程类型(项目类型),使用 IDE 时必须选择正确的工程类型才能创建出我们想要的程序。换句话说,IDE 包含了多种工程类型,不同的工程类型会创建出不同的程序。

不同的工程类型本质上是对 IDE 中各个参数的不同设置;我们也可以创建一个空白的工程类型,然后自己去设置各种参数(不过一般不这样做)。

控制台程序对应的工程类型为Win32控制台程序(Win32 Console Application),GUI 程序对应的工程类型为Win32程序(Win32 Application)。

基本语法
#

标记(Tokens)
#

C 程序由各种标记组成,标记可以是关键字、标识符、常量、字符串值,或者是一个符号

printf('Hello World!');
printf   // 标识符
(        // 符号
"Hello, W3Cschool! \n"    // 字符串值
)        // 符号
;        // 分号是语句结束符

在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。

注释
#

//C99新增了这种风格的注释,普遍用于C++和Java。这

/*
 多行
 注释
 */

标识符
#

  • C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。
  • 一个标识符以字母 A-Za-z 或下划线_ 开始,后跟零个或多个字母、下划线和数字(0-9)。
  • C 标识符内不允许出现标点字符,比如 @$%
  • C 是区分大小写的编程语言。

关键字
#

下表列出了 C 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。

auto else long switch
break enum register typedef
case extern return union
char float short unsigned
const for signed void
continue goto sizeof volatile
default if static while
do int struct _Packed
double
C语言基础 - 点击查看当前系列文章
§ 1、C语言 「 当前文章 」