C Primer Plus学习笔记(一)

  • 第一章 初始C语言

    • 1.1 C语言的起源

    • 1.2 选择C语言的理由

    • 1.3 C语言的应用范围

    • 1.4 计算机能做什么

    • 1.5 高级计算机语言和编译器

    • 1.6 语言标准

    • 1.7 使用C语言的7个步骤

    • 1.8 编程机制

C语言的起源

1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritch)和肯·汤普逊(Ken Thompson)在开发UNIX操作系统时设计了C语言。C语言是在B语言的基础上进行设计的。

选择C语言的理由

  • 1 设计特性
    C是一门流行的语言,融合了计算机科学理论和实践的控制特性。C语言的设计理念让用户能轻松地完成自顶向下的规划、结构化编程和模块化设计。
  • 2 高效性
    • 强大的控制结构。
    • 快速
    • 代码紧凑
    • 可移植到其他的计算机
  • 3 可移植性
    C程序稍作修改或不修改就能在其他系统运行。如需修改,也只需简单更改主程序头文件中的少许项即可。
  • 4 强大而灵活
    C程序可以用于解决物理学和工程学的问题,甚至可用于制作电影的动画特效。
  • 5 面向程序员
    C 语言是为了满足程序员的需求而设计的,程序员利用 C 可以访问硬件、操控内存中的位。C 语言有丰富的运算符,能让程序员简洁地表达自己的意图。C 语言在提供更多自由的同时,也让使用者承担了更大的责任。
  • 6 缺点
    C 语言紧凑简洁,结合了大量的运算符。正因如此,我们也可以编写出让人极其费解的代码。

C语言的应用范围

许多软件公司都用C语言来开发文字处理程序、电子表格、编译器等产品。
C Primer Plus学习笔记(一)_第1张图片

计算机能做什么

中央处理单元(CPU)承担绝大部分的运算工作。随机存取内存(RAM)是存储程序和文件的工作区;而永久内存存储设备(过去一般指机械硬盘,现在还包括固态硬盘)即使在关闭计算机后,也不会丢失之前储存的程序和文件。
计算机的工作原理是:如果希望计算机做某些事,就必须为其提供特殊的指令列表(程序),确切地告诉计算机要做的事以及如何做。你必须用计算机能直接明白的语言(机器语言)创建程序。

高级计算机语言和编译器

高级编程语言(如,C)以多种方式简化了编程工作。首先,不必用数字码表示指令;其次,使用的指令更贴近你如何想这个问题,而不是类似计算机那样繁琐的步骤。使用高级编程语言,可以在更抽象的层面表达你的想法,不用考虑CPU在完成任务时具体需要哪些步骤。

语言标准

先只介绍C99标准
1994年,ANSI/ISO联合委员会(C9X委员会)开始修订C标准,最终发布了C99标准。该委员会遵循了最初C90标准的原则,包括保持语言的精练简单。委员会的用意不是在C语言中添加新特性,而是为
了达到新的目标。第1个目标是,支持国际化编程。例如,提供多种方法处理国际字符集。第2个目标是,“调整现有实践致力于解决明显的缺陷”。因此,在遇到需要将C移至64位处理器时,委员会根据
现实生活中处理问题的经验来添加标准。第3个目标是,为适应科学和工程项目中的关键数值计算,提高C的适应性,让C比FORTRAN更有竞争力。

使用C语言的7个步骤

C是编译性语言。我们把编写C程序的过程分解为7个步骤。(理想状态)
C Primer Plus学习笔记(一)_第2张图片
第一步:定义程序目标
在动手写程序之前,要在脑中有清晰的思路。想要程序去做什么首先自己要明确自己想做什么,思考你的程序需要哪些信息,要进行哪些计算和控制,以及程序应该要报告什么信息。
第二步:设计程序
对程序应该完成什么任务有概念性的认识后,就应该考虑如何用程序来完成它。例如,用户界面应该是怎样的?如何组织程序?目标用户是谁?准备花多长时间来完成这个程序?
第三步:编写代码
第四步:编译
C 编译器负责把C代码翻译成特定的机器语言。
第五步:运行程序
第六步:测试和调试程序
现在的编译器会捕获许多错误,而且自己也可以找到编译器未发现的错误。在学习本书的过程中,我们会给读者提供一些调试的建议。
第七步:维护和修改代码
创建完程序后,你发现程序有错,或者想扩展程序的用途,这时就要修改程序。

编程机制

用C语言编写程序时,编写的内容被储存在文本文件中,该文件被称为源代码文件。大部分C系统,包括之前提到的,都要求文件名以.c结尾(如,wordcount.c和budget.c)。在文件名中,点号(.)前面的部分称为基本名,点号后面的部分称为扩展名。因此,budget是基本名,c是扩展名。基本名与扩展名的组合(budget.c)就是文件名。文件名应该满足特定计算机操作系统的特殊要求。
目标文件和可执行文件都由机器语言指令组成的。然而,目标文件中只包含编译器为你编写的代码翻译的机器语言代码,可执行文件中还包含你编写的程序中使用的库函数和启动代码的机器代码。

本章小结

C是强大而简洁的编程语言。它之所以流行,在于自身提供大量的实用编程工具,能很好地控制硬件。而且,与大多数其他程序相比,C程序更容易从一个系统移植到另一个系统。C是编译型语言。C编译器和链接器是把C语言源代码转换成可执行代码的程序。

复习题

  1. 对编程而言,可移植性意味着什么?
    这意味着,在一种系统中编写的C程序稍作修改或不修改就能在其他系统运行。如需修改,也只需简单更改主程序头文件中的少许项即可。
  2. 解释源代码文件、目标代码文件和可执行文件有什么区别?
    源代码文件:包含程序员使用的任何编程语言编写的代码。
    目标代码文件:包含机器语言代码,不必是完整的程序代码。
    可执行文件:包含组成可执行程序的完整机器语言代码。
  3. 编程的7个主要步骤是什么?
  • 定义程序的目标
  • 设计程序
  • 编写代码
  • 编译
  • 运行程序
  • 测试和调试程序
  • 维护和修改程序
  1. 编译器的任务是什么?
    编译器是把源代码转换成可执行代码的程序。
  2. 链接器的任务是什么?
    把编译器翻译好的源代码以及启动代码组合起来,生成一个可执行程序。

你可能感兴趣的:(C Primer Plus学习笔记(一))