初识C语言

第一章 初识C语言

最近我将开始学习C语言,并且我将持续更新我学习过程中的一些学习笔记,给同样正在学习C这门语言的友友们提供一个参考,下面是我看完《C Primer Plus》这本书第一章内容所做的学习笔记,希望对各位友友们有帮助!

C语言的起源

丹尼斯·里奇和肯汤•普逊在开发UNIX操作系统时设计了c语言。

里奇是在B语言(汤姆逊发明)的基础上进行设计的。

选择C语言的理由

设计特性

    c融合了计算机科学理论和实践的控制特性
    
    设计理念让用户能轻松地完成自顶向下的规划、结构化编程和模块化设计

高效性

    C语言具有通常是汇编语言才具有的微调控制能力,可以根据具体情况微调程序
    以获得最大运行速度或最有效地使用内存
    
    汇编语言是为特殊的中央处理单元设计的一系列内部指令,使用助记符来表示
    
    不同的CPU系列使用不同的汇编语言

可移植性

    在一种系统中编写的C程序稍作修改就能在其它系统中运行
   
    注意:程序中针对特殊硬件设备(如显示监视器)或操作系统特殊功能
    (如Windows 8或OS X)编写的部分通常是不可移植的

强大而灵活

面向程序员

缺点

  C语言使用指针,而涉及指针的编程错误往往难以察觉
   
  C语言紧凑简洁,结合了大量的运算符,可编写出让人费解的代码

C语言的应用范围

C语言已成为嵌入式系统编程的流行语言

C++ 在C语言的基础上嫁接了面向对象编程工具(面向对象编程是一门哲学,它通过对语言建模来适应问题,
而不是对问题建模以适应语言)

在这里插入图片描述

计算机能做什么

中央处理单元(CPU)承担绝大部分的运算工作
    CPU的工作是从内存中获取并执行一条指令,然后再从内存获取并执行下一条指令,诸如此类
    CPU有自己的小工作区——由若干个寄存器组成,每个寄存器都可以储存一个数字
    
    一个寄存器储存下一条指令的内存地址,CPU使用该地址来获取和更新下一条指令。在获取指令后,
    CPU在另一个寄存器中储存该指令,并更新第1个寄存器储存下一条指令的地址
    
    CPU能理解的指令有限(这些指令的集合叫做指令集),且这些指令相当具体,其中许多指令都是用于
    请求计算机把一个数字从一个位置移动到另一个位置。如从内存移到寄存器。
随机存取内存(RAM)是存储程序和文件的工作区
永久内存存储设备(过去一般指机械硬盘,现在还包括固态硬盘)即使在关闭计算机后,也不会丢失之前储存的程序和文件。
储存在计算机中的所有内容都是数字。计算机以数字形式储存数字和字符。每个字符都有一个数字码。计算机载入寄存器的指令也以数字形式储存,指令集中的每条指令都有一个数字码
计算机程序最终必须以数字指令码(即机器语言)来表示
计算机完成两数相加的几个步骤
    1.从内存位置2000上把一个数字拷贝到寄存器1
    2.从内存位置2004上把另一个数字拷贝到寄存器2
    3.把寄存器2中的内容与寄存器1中的内容相加,把结果储存到寄存器1中
    4.把寄存器1中的内容拷贝到内存位置2008
   
    注意:必须用数字码表示上面的步骤

高级计算机语言和编译器

使用高级编程语言,可以在更加抽象的层面表达你的想法,不用考虑CPU在完成任务时具体需要哪些步骤

编译器是把高级语言程序翻译成计算机能理解的机器语言指令集的程序

不同CPU制造商使用的指令系统和编码格式不同,但可找到与之特定类型CPU匹配的编译器

使用合适的编译器或编译器集,便可把一种高级语言程序转换成供各种不同类型CPU使用的机器语言程序

语言标准

C语言发展之初,并没有所谓的C标准

1978,布莱恩·柯林汉和丹尼斯·里奇合著的 The C Programming Language(《C语言程序设计》)第1版是
公认的C标准,通常称之为K&R C或经典C

由于缺乏官方标准,UNIX实现提供的库已成为了标准库

1989,美国国家标准协会(ANSI)公布了一套新标准,该标准(ANSI C)定义了C语言和C标准库。国际标
准化组织于1990年采用了这套C标准(ISO C)。ANSI C和 ISO C是完全相同的标准。ANSI/ISO标准的最终
版本通常叫做C89 或C90.

1994,ANSI/ISO联合委员会开始修订C标准,最终发布C99标准

2011,发布C11标准

使用C语言的7个步骤

1. 定义程序的目标
2.设计程序
3. 编写代码
4. 编译
    C编译器负责把C代码翻译成特定的机器语言,还将源代码与C库的代码合并成最终的程序(更精确
  
地说,应该是由一个被称为链接器的程序来链接库函数,在大多数系统中,编译器运行链接器)
5. 运行代码
6. 测试和调试程序
7. 维护和修改代码

编程机制

用C语言编写程序时,编写的内容被储存在文本文件中,该文件被称为源代码文件(文件名以.c结尾)

编译器把源代码转换为机器语言代码,并把结果放在目标代码文件,简称目标文件(虽然目标文件中包含机
器语言代码,但是并不能直接运行该文件,因为目标文件储存的是编译器翻译的源代码,并不是一个完整的
程序,目标代码文件还缺失启动代码和库函数,启动代码充当着程序和操作系统之间的接口。)

链接器将编写的目标代码、系统的标准启动代码和库代码这3部分合并成一个文件,即可执行文件。对于库
代码,链接器只会把程序中要用到的库函数代码提取出来。

在这里插入图片描述
以上就是我看完《C Primer Plus》这本书第一章内容之后的学习总结,如果有写得不对的地方,希望各位大佬指正并多多包涵!

  • 17
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值