第一章————初识C语言!!

初始C语言

1.1C语言的起源

C 语言是1972年由美国的Dennis Ritchie设计发明的, 并首次在UNIX操作系统的 DEC PDP-11 计算机上使用。 它由早期的编程语言 BCPL( Basic Combind Programming Language) 发展演变而来。在1970年, AT&T 贝尔实验室的 Ken Thompson根据BCPL语言设计出较先进的并取名为 B的语言, 最后导了C 语言的问世。随着微型计算机的日普及, 出现了许多C 语言版本。由于没有统一的标准,使得这些C 语言之间出现了一些不一致的地方。为了改变这种情况, 美国国家标准研究所(ANSI)为C 语言制定了一套ANSI标准, 成为现行的C语言标准。然而,最初为程序员开发的C语言,现在已经成为首选的编程语言之一。

1.2选择C语言的理由

在过去的40多年里,C语言已经成为最重要、最流行的编程语言之一。在学习C语言的过程中,我们会发现它的许多优点。

1.2.1设计特性

C是一门流行的语言,融合了计算机科学理论和实践的控制特性。C语言的设计理念让用户能轻松地完成自顶而下的规划、结构化编程和模块化设计。因此,用C语言编写的程序更易懂、更可靠。

1.2.2高效性

C是高效的语言。在设计上,它充分利用了当前计算机的优势,因此C程序相对更紧凑,而且运行速度很快。

1.2.3可移植性

C是可移植的语言。这意味着,在一种系统中编写的C程序稍作修改或不修改就能在其他系统中运行。

1.2.4强大而灵活

C语言功能强大而灵活(计算机领域经常使用这两个词)。 C语言除了编写一些解释器和编译器外,还可以用来解决物理学和工程学的问题,甚至可以用于制作电影的动画特效。

1.2.5面向程序员

C语言是为了满足程序员的需求而设计的,程序员利用C可以访问硬件、操控内存中的位。另外,大多数C实现都有一个大型的库,包含众多有用的C函数。这些函数用于处理程序员经常需要解决的问题。

1.2.6缺点

C语言结构紧凑,结合了大量的运算符。正因如此,我们也可以编写出那些让人及其费解的代码。特别是,C语言使用指针,而涉及指针的编程错误往往难以察觉。

1.3C语言的应用范围

无论是软件公司、经验丰富的C程序员,还是其他用户,都能从C语言中受益。越来越多的计算机用户已转而求助C语言解决一些安全问题。不一定非得是计算机专家才能使用C语言。


C++与C的区别:
C++在C语言的基础上嫁接了面向对象编程工具,C++几乎是C的超集,这意味着任何C程序差不多就是一个C++程序。学习C语言,也相当于学习了许多C++的知识。

1.4计算机可以做什么

现代的计算机由多种部件构成。

  • 中央处理单元(CPU)——承担绝大部分的运算工作。
  • 随机存取内存(RAM)——是存储程序和文件的工作区。
  • 一些外围设备——键盘、鼠标、触摸屏等
1.4.1CPU的工作原理

CPU的工作原理非常简单。它从内存中获取应执行一条指令,然后再从内存中获取并执行下一条指令,诸如此类。CPU有自己的小工作区——由若干个寄存器组成,每个寄存器都可以存储一个数字。一个寄存器存储下一条指令的内存地址,CPU使用该地址来获取和更新下一条指令。再获取指令后,CPU在另一个寄存器中存储该指令,并更新第一个寄存器存储下一条指令的地址。CPU能理解的指令有限(这些指令的集合叫做指令集)。而且,这些指令相当具体,其中的许多指令都是用于请求计算机把一个数字从一个位置移动到另一个位置。例如:从内存移动到寄存器。

1.4.2计算机的工作原理

简而言之,计算机的工作原理是:如果希望计算机能做某事,就必须为其提供特殊的指令列表(程序),确切地告诉计算机要做的事情以及如何去做。你必须使用计算机能直接明白的语言(机器语言)创建程序。

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

高级编程语言以多种方式简化了编程工作。首先,不必使用数字码表示指令;其次,使用的指令更加地贴近你如何想这个问题,而不是类似计算机那样繁琐的步骤。
编译器是把高级语言程序翻译成计算机能理解的机器语言指令集的程序。程序员进行高级思维活动,而编译器则负责处理冗长乏味的细节工作。
简而言之,高级语言以更抽象的方式描述行为,不受限于特定CPU或指令集。而且,高级语言简单易学,用高级语言编程比用机器语言编程容易得多。

1.6语言标准

C语言比其他语言更依赖库,因此需要一个标准库。实际上,由于缺乏官方标准,UNIX实现提供的库已成为标准库。

1.6.1第一个ANIS/ISO C 标准
  • 信任程序员
  • 不要妨碍程序员需要做的事
  • 保持语言精炼简单
  • 只提供一种方法执行一项操作
  • 让程序运行更快,及时不能保证其可移植性
1.6.2C99 标准

主要的修订目标:国际化、弥补缺陷、提高计算的实用性。

1.6.3C11标准

对于C11标准,我们浅尝辄止。。。。。。。。。。

1.7使用C语言的七个步骤

1.7.1第1步:定义程序的目标

在动手写程序之前,要在脑中有清晰的思路。明确自己每一步要干什么。

1.7.2第2步:设计程序

对程序应该完成神门任务有概念性的认识后,就该考虑如何用程序去完成它。选择一个合适的方式表示信息可以更容易的设计程序和处理数据。

1.7.3第3步:编写代码

设计好程序后,就可编写代码来实现它。也就是说,把你设计的程序翻译成C语言,这里是真正需要使用C语言的地方。

1.7.4第4步:编译

接下来的这一步是编译源代码。编译的细节取决于编程的环境。编译器就是把源代码转换成可执行代码的程序。

1.7.5第5步:运行程序

最终生成的程序可通过单击或双击文件名或图标直接在操作系统中运行。

1.7.6第6步:测试和调试程序

在运行中,你会发现你写的程序有些错误,计算机行话叫做bug,查找并修复程序错误的过程叫做调试。

1.7.7第7步:维护和修复代码

创建完程序后,你发现程序有错,或者想拓展程序的用途,这时就要修改程序。

1.7.8说明

编程并非像描述那样是一个线性的过程。例如:在写代码时发现之前的设计不切实际,或者想到了一个更好的解决方案,或者等程序员运行后,像改变原来的设计思路,对程序做文字注释为今后的修改提供了方便。
磨刀不误砍柴工,应该养成先规划再动手编写代码的好习惯,用纸和笔记录下程序的目标和设计框架。这样再编写代码的过程中会更加得心应手、条理清晰。

1.8编程机制

生成程序的具体过程因计算机环境而异。C是可移植性语言,因此可以在许多环境中使用,但是有些产品会随着时间的推移发生演变或被取代。
在文件名中,点号(.)前面的部分称为基本名(basement),点号后面的部分称为拓展名(extension)。
Linux、Windows和Macintosh OS都允许使用长文件名。

1.8.1目标代码文件、可执行文件和库

C编程的基本策略是,用程序把源代码文件转换为可执行文件(其中包含可直接运行的机器语言代码) 。典型的C实现通过编译和链接两个步骤来完成这一过程。
目标代码文件缺少启动代码。启动代码充当着程序和操作系统之间的接口。
目标代码还缺少库函数。几乎所有的C程序都要使用C标准库中的程序。
连接器的作用是,把你编写的目标代码、系统的标准启动代码和库代码这3个部分合并为一个文件,即可执行文件。

1.8.2UNIX系统

由于C语言因UNIX系统而生,也因此而流行,所以我们从UNIX系统开始。

  1. 在UNIX系统上编辑
  2. 在UNIX系统上编译
1.8.3GNU编译器集合和LLVM项目
1.8.4Linux系统

Linux是一个开源、流行、类似于UNIX的操作系统,可在不同平台上运行。在Linux中准备C程序与在UNIX系统中几乎一样,不同的是要使用GNU提供的GCC公共域C编译器。

1.8.5PC的命令行编译器

C编译器不是标准Windows软件包的一部分,因此需要从别处获取并安装C编译器

1.8.6集成开发环境

许多供应商都提供Wwindows下的集成开发环境,或称为IDE。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kinght_123

我会继续努力创造更多的优秀作品

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值