欧易

欧易(OKX)

国内用户最喜爱的合约交易所

火币

火币(HTX )

全球知名的比特币交易所

币安

币安(Binance)

全球用户最多的交易所

C语言从入门到精通:C语言的发展进程

时间:2022-10-09 17:17:26 | 浏览:959

C语言是一种计算机程序设计语言,它既有高级语言的特点,又具有低级汇编语言的特点。它可以作为系统设计语言来编写工作系统应用程序,也可以作为应用程序设计语言来编写不依赖计算机硬件的应用程序。因此,它的应用范围非常广泛。C语言的诞生及发展历程如图

C语言是一种计算机程序设计语言,它既有高级语言的特点,又具有低级汇编语言的特点。它可以作为系统设计语言来编写工作系统应用程序,也可以作为应用程序设计语言来编写不依赖计算机硬件的应用程序。因此,它的应用范围非常广泛。

C语言的诞生及发展历程如图所示。

第1阶段:A语言

C语言的发展颇为有趣,它的原型是ALGOL 60语言,也称A语言。ALGOL 60是一种面向问题的高级话言,它离硬件比较远,不适合编写系统程序。AIGOL60 (也就是算法语言60)是程序设计语言由技艺转向科学的重要标志,其特点是具有局部性、动态性、递归性和严谨性。

第2阶段: CPL语言

1963年,剑桥大学将AIGOL 60语言发展成为CPL (Combined Programming Language) , CPL在AIGOL 60的基础上与硬件接近了一些,但规模仍然比较宏大,难于实现。

第3阶段: BCPL语言

1967年,剑桥大学马丁·理察斯(Martin Richards)对CPL进行了简化,推出了BCPL (Basic CombinedProgramming Language) , BCPL是计算机软件人员在开发系统软件时作为记述语言使用的一种结构化程序设计语言,它能够直接处理与机器本身数据类型相近的数据,具有与内存地址对应的指针处理方式。

第4阶段: B语言

在20世纪70年代初期,时任美国贝尔实验室的肯·汤普逊对BCPL进行了修改,设计出比较简单而且很接近硬件的语言,取名为B语言。B语言还包括了汤普逊的一些个人偏好,比如在一些特定的程序中减少非空格字符的数量。和BCPL以及FORTH类似, B语言只有一种数据类型,计算机字。大部分的操作将其作为整数对待,例如,进行+、-、*、/操作,但进行其余的操作时,则将其作为一个复引用的内存地址。在许多方面,B语言更像是一种早期版本的C语言,它还包括了一些库函数,其作用类似于C语言中的标准输入/输出函数库。

第5阶段: C语言

由于B语言过于简单,数据没有类型,功能也有限,所以美国贝尔实验室的丹尼斯·里奇在B语言的基础上最终设计出了一种新的语言,取名为C语言,并试着以C语言编写UNIX, 1972年,丹尼斯·里奇完成了C语言的设计,并成功地利用C语言编写出了操作系统,从而降低了作业系统的修改难度。

1978年, C语言先后移植到大、中、小、微型计算机上,风靡世界,成为最广泛的几种计算机语言之一。

1983年,美国国家标准学会(ANSI)对C语言进行了标准化,当年颁布了第一个C语言标准草案(83 ANSI C) , 1987年又颁布了另一个C语言标准草案(87 ANSIC) 。 1994年, ISO修订了C语言的标准。最新的C语言标准是在1999年颁布的,并在2000年3月被ANSI采用的C99,正式名称是ISO/IEC9899:1999。

0.2 C语言的特点

每一种话言都有自己的优缺点, C语言也不例外,所以才有了语言的更替,有了不同语言的使用范围。下面列举C语言的一些优点。

1.功能强大、适用范围广、可移植性好

许多著名的系统软件都是由C语言编写的,而且C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

C语言适合于多种操作系统,如DOS, UNIX等。对于操作系统、系统使用程序以及需要对硬件进行操作的场合,使用C语言明显优于其他解释型高级语言,一些大型应用软件也是用C语言编写的。

2.运算符丰富

C语言的运算符包含的范围广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理,从而使C语言的运算类型极其丰富,表达式类型多样化。灵活地使用各种运算符可以实现在其他高级语言中难以实现的运算。运算符的介绍见第4章中的相关内容。

3.数据结构丰富

C语言的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据结构的运算。C语言还引入了指针的概念,从而使程序的效率更高。

4.C语言是结构化语言

结构化语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,因此用户可以方便地调用这些函数,并具有多种循环和条件语句来控制程序的流向,从而使程序完全结构化。

5.C语言可以进行底层开发

C语言允许直接访问物理地址,可以直接对硬件进行操作,因此可以使用C语言来进行计算机软件的底层开发。

6.其他特性

C语言对语法的限制不太严格,其语法比较灵活,允许程序编写者有较大的自由度。另外,C语言生成目标代码的质量高,程序执行效率高。

0.3 c语言无处不在

C语言应用范围极为广泛,不仅仅是在软件开发上,各类科研项目也都要用到C语言。下面列举了C语言一些常见的领域。

(1) 应用软件。Linux操作系统中的应用软件都是使用C语言编写的,因此这样的应用软件安全性非常高。

(2)对性能要求严格的领域。一般对性能有严格要求的地方都是用C语言编写的,比如网络程序的底层和网络服务器端的底层、地图查询等。

(3)系统软件和图形处理。C语言具有很强的绘图能力和可移植性,并且具备很强的数据处理能力,可以用来编写系统软件、制作动画、绘制二维图形和三维图形等。

(4)数字计算。相对于其他编程语言, C语言是数字计算能力很强的高级语言。

(5)嵌入式设备开发。手机、PDA等时尚消费类电子产品相信大家都不陌生,其内部的应用软件、游戏等很多都是采用C语言进行嵌入式开发的。

(6)游戏软件开发。对于游戏大家更不陌生,很多人就是因为玩游戏而熟悉了计算机。利用C语言可以开发很多游戏,比如推箱子、贪吃蛇等。

0.4 C语言的学习经验

CC语言是在国内外广泛使用的一种计算机语言。其语言功能丰富、表达能力强、使用灵活方便,既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。很多新型的语言,如C++, Java, C#,J#, perl等都是衍生自C语言。掌握了C语言,可以说就掌握了很多门语言。

C语言是计算机的基础,大多数软件都需要用C语言来编写,例如,我们在编写一个较大的程序时,应该把它分成几个小程序来看,这样会容易得多。同时, C语言应该是操作和理论相结合的课程,两者是不可分割的。

要了解C语言,就要从语法学起,首先要了解它的结构,比如变量,要了解变量的定义方式(格式) ,其意义是什么(定义变量有什么用) ;其次就是要怎么去运用它(用什么形式去应用它) 。这些都是语法基础,也是C语言的基础,如果把它们都了解了,那么编起程序来就很得心应手了。比如, IF ELSE和SWITCHCASE这两种条件语句都是用来判断执行功能的,那要什么时候用IF,什么时候用SWITCH呢?如果能够很好地了解它们的结构和作用,那么就知道,若它的条件分文有多个,而且条件的值是整数或一个字符值,就会选SWITCH,因为如果条件分文太多时用IF语句,一定会出现IF的嵌套, IF的嵌套越多,程序的开销就会随着增大,这样整个程序的运行效率就会大大降低。而sWITCH则不同,它只要比较一次,就可以找出条件的结果。不过SWITCH也有它的约束条件,就是它的条件值一定要为一个整型数或一个字符值,所以碰到它不能解决的问题时通常也会使用IF语句,毕竟I语句使用起来比较方便,而且使用范围也比较广。所以说了解语法规则是很重要的,如果没有一个良好的语法基础,很难编出一个好的程序。

学好语法基础后我们就可以开始编程了。很多初学者在看完题目后不知从何入手,其实在编写程序的时候,我们应该养成画流程图的好习惯。因为C语言的程序是以顺序为主,一步步地从上往下执行的,而流程图的思路也是从上到下一步步画出来的。而且画流程图的过程也是你在构建编写程序的思路的过程,流程图画好了,编程的思路也基本定了,然后根据思路来编写程序即可。

除了要掌握上述基本的知识外,良好的编程习惯也是学好C语言的重要因素,例如,编写程序时要有缩进,写注释,程序写到一定的阶段时要做模块测试等。程序的维护是令程序员很头疼的问题,如果一个复杂的程序在编完后才发现有错误,那么找出错误的工作量将会非常大。但是若在编写程序时做好格式的缩进和写注释,那么程序看起来就很清晰了,如果在每个阶段做模块测试,确定之前的程序没有错误,这样错误机会也会减少很多。

设计程序的过程如同解决一个实际问题,你需要从多个角度来分析,首先要了解这个问题的基本要求,即输入、输出,以及完成从输入到输出的要求是什么,其次,从问题的要害入手,从前往后解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中可确定所需的变量、数组、函数,然后确定处理过程——算法,最后得出结论。

学习一门编程语言之前,都要了解这门语言的精髓是什么。对于C语言而言,指针的定义与运用是它的一大特色,也是其能够得到广泛应用的重要原因之一。例如,指针可以作为数组的地址使数组的处理变得简洁也可以通过指针给函数传递变量的地址,从而实现调用函数后返回多个值;指针还支持动态内存分配,使处理数值、字符数组的方法更为简单。本书对指针内容进行了更新,详细讲解了这方面的内容。

0.5 C言的学习路线

学习编程语言就是一个坚持看、敲、写的过程。

(1)要学好C语言,首先要买一本好的入门书籍。本书把C语言所涉及的内容进行了详细的讲解,对于新手来说是个不错的选择。

(2)看书,大概了解内容的时候,一定要把程序敲出来自己运行一遍。编程工具推荐VC 6.0,其使用教程可以上网搜索。

(3)读程序。登录论坛或者百度文库找一些用C语言编写的程序的例子,试着去读懂。

(4)自己改写程序。通过前面的学习,应该已经掌握一些基本的编程技巧。一定要有自己的想法,然后让自己的想法通过程序来实现。编程语言的学习过程就是坚持的过程,只要掌握了一种编程语言,再去学习其他的语言就很轻松了。

本文节选自《C语言从入门到精通(第2版)》

本书面向C语言的零基础读者,介绍基础入门知识和实际操作技巧。全书紧贴软件开发的实际需求,首先向读者展示语言的背景知识和应用范围,之后通过实例和自测,系统讲解相关知识点,同时兼顾实际开发项目经验。为了增强实用性,光盘中还特别赠送了精选的考试认证、求职面试等题库,供读者研究学习。最后,为帮助初入职场的从业者顺利进入角色,还在光盘中赠送了职业规划建议及相关开发文档。


专栏

C Primer Plus官方视频解读

作者:异步社区

¥99

5人已购

查看

相关资讯

C语言入门:深度解析C语言学习体系,一文吃透C语言

01.介绍篇操作系统及开发系统02. 入门篇03.提高篇03.精通篇C语言精通大牛阶段C语言EasyX图形编程如果你与我志同道合于此,很愿意与你交流如果你喜欢我的内容,欢迎关注和支持C语言基础入门资料:素材资源:想要资源的小伙伴可以可以【点

一个资深C语言工程师:浅说C语言的重要性以及如何学好C语言

前言C语言属于高级程序语言的一种,它的前身是“ALGOL”。其创始人是布朗·W·卡尼汉和丹尼斯·M·利奇。C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。198

知道并没有什么用的C语言背景,了解C语言是一种结构化的编程语言

C语言是一种结构化的编程语言。它也称为面向函数的编程语言。C语言是由美国贝尔实验室(AT&T)的Dennis Ritchie于1972年开发的。1968年,丹尼斯·里奇(Dennis Ritchie)开始研究诸如BCPL,CPL之类的编程语

C语言入门了解篇—C语言发展史

前言作为理工科的我们,看到一些理论、概念和一些术语,就是脑瓜疼。在大学时,这些知识,很多时候都是作为填空题,最终的答案就跟四级作文差不多,答案脑洞大开。回归正题,其实,有很多东西我们只需要了解一下就好了,知道有这么一回事。例如,C语言是谁搞

C语言从入门到精通:C语言的发展进程

C语言是一种计算机程序设计语言,它既有高级语言的特点,又具有低级汇编语言的特点。它可以作为系统设计语言来编写工作系统应用程序,也可以作为应用程序设计语言来编写不依赖计算机硬件的应用程序。因此,它的应用范围非常广泛。C语言的诞生及发展历程如图

C语言编程:最常见7道C语言面试题,还是有不少人弄不明白?

C语言是一门面向结构化的高级编程语言(也有人认为它是中级语言),用于通用编程需求。基本上,C语言是其基本语法和库函数的集合,因此程序员定义自己的函数并且将其包含在C语言库中也是很方便的。C语言的主要用途是编写其他编程语言的编译器、操作系统、

从零开始学习C语言丨C语言简介和VSCode配置全解

上一篇文章中,简单地介绍了一下什么是编程,以及编程根据编译运行的方式有哪些分类,还附带一些些小小的学习建议。从这篇文章起,就正式进入了C语言学习中。C语言简述首先来认识一下,什么是C语言?C语言是一种计算机程序设计语言,于1972年诞生于美

经验分享丨如何用最短的时间学会C语言,并掌握C语言的精髓所在?

看了此文后,我想对于您学习此语言一定有很大的帮助,同时也能了知晓如何用最短的时间学会C语言以及掌握C语言的精髓所在。谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能非常强大、应用广泛,一旦掌握

如何学习C语言?很容易,C语言从入门到入土,从长发飘飘到秃顶

学C语言不知道从哪儿下手?学习框架都帮你列好了!在未来计算机专业讲又要迎来一批新生小鲜肉!C语言入门到入土,从长发飘飘到秃顶的老铁也越来越多,其中,想自学成才的也占了不少数;想笨鸟先飞的也占有不少数。传说中的C语言就是那么刺激和高挑战没有基

C语言入门了解篇—C语言编译流程

C语言入门了解篇-C语言编译流程(面试常见问题)当我们安装了集成环境之后,编写.c文件,一按下图红色框框的按键即“编译并运行”,就可以得到一个“.exe”后缀的可执行的C程序文件,这期间并非只有一道工序,而是分别经过了预处理、编译、汇编和链

C/C++编程笔记:C语言编程知识要点总结!大一C语言知识点(全)

一、C语言程序的构成与C++、Java相比,C语言其实很简单,但却非常重要。因为它是C++、Java的基础。不把C语言基础打扎实,很难成为程序员高手。1、C语言的结构先通过一个简单的例子,把C语言的基础打牢。C语言的结构要掌握以下几点:(1

C语言多关卡推箱子,兄台了解一下?没错,C语言完整简单项目实战

很高兴你能光临小编寒舍首先感谢百忙之中你能从万千文章中点小编得专属页面。这不是娱乐篇,这是学习道场。开始前,小编就做一个简单得自我介绍:(开启装逼模式)我就是传说中写文章通俗而不庸俗,说话风流而不下流,智慧与美貌并重,英雄与侠义得化身得小编

C语言基础之C语言概述

C教程更多C/C++学习资料 私密我“代码”,即可获取C是贝尔电话实验室的Dennis M. Ritchie于1972年开发的一种通用的,程序性的,命令式的计算机编程语言,用于开发UNIX操作系统。C是