【C语言简介】C语言的前世今生

C语言的发展历史:

  1. 20世纪70年代初,贝尔实验室的Dennis Richie 等人在B语言基础上开发出C语言,最初是作为UNIX的开发语言;

  2. 20世纪70年代末,随着微型计算机的发展,C语言开始移植到非UNIX环境中,并逐步成为独立的程序设计语言;

  3. 在1978年,Kernighan和里奇的《C程序设计语言》第一版出版,在这本书中,C语言通常被表述成“K&R C”;

  4. 1988年ANSI(美国国家标准协会)对C语言进行了标准化,产生了“ANSI C”;

  5. 在ANSI标准化自己的过程中,一些新的特征被加了进去。ANSI也标准了函数库。ANSI C标准被ISO(国际标准化组织)采纳成为ISO 9899。ISO的第一个版本文件在1990年出版,诞生了“ISO C”;

  6. 标准在90年代才经历了改进,这就是ISO9899:1999(1999年出版)。这个版本就是通常提及的C99。它被ANSI于2000年三月采用。

C语言的特点:  

  1. C是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元;

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

  3. C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。

  4. C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件、三维、二维图形和动画,支持多种显示器和驱动器;

  5. C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。 

C语言的优点:

  1. 既有高级语言的结构和编程环境,又有类似于低级语言(如汇编语言)的系统资源操纵能力。目标代码的执行效率只比汇编低10~20% ,比其他高级语言高,适合解决有实时要求的问题;

  2. 有丰富的运算符、数据类型和表达式,对程序设计有良好的适应性;

  3. 支持以函数为基础结构化程序设计、多文件构成及文件独立编译,适合大型复杂程序设计;

  4. 语言简洁、紧凑,使用方便、灵活,书写形式自~由;

  5. 代码及可执行程序的可移植性好。

C语言的缺点:

  1. C语言它的最大的缺点就是,如果你的项目很复杂,大量的开发人员互相之间需要更新大段代码时,C语言可能会使事情变得异常麻烦。因为C是在面向对象方法流行之前开发的,这大大降低了C语言复杂设计的可能性。(不要以为C语言做不了大项目 - -世界上有太多的经典都是用C语言完成的,如果你想了解C语言的能力,不妨看看QUAKE3的源代码——很敬佩ID的无私,这份代码完全是公开的,任何人都可以使用它与修改它。);

  2. 输入输出相对很多语言都较为复杂。对于字符串的处理,只能通过字符数组实现。绘图操作较为复杂;

  3. C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别;

  4. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握;

  5. 指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。C++在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java取消了指针操作,提高了安全性;

  6. 类型检查机制相对较弱、缺少支持代码重用的语言结构

结束语:学习编程其实并不难,谢谢大家的支持,今天就给大家分享到这里,如果有喜欢或者想学习C语言的朋友可以加一下小编我自己的C语言交流群815393895,下篇文章见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因

C语言是面向过程的,而C++是面向对象的 C和C的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得…

C\C++中声明与定义的区别

C语言是面向过程的,而C++是面向对象的 C和C的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得…

C++ 虚函数和虚继承解析

本文针对C里的虚函数,虚继承表现和原理进行一些简单分析,有不对的地方请指出。下面都是以VC2008编译器对这两种机制内部实现为例。 有喜欢或者想学习C/C的朋友加一下我的C/C交流群815393895。谢谢大家的支持 虚函数 以下是百度百科对于虚函数的解释&a…

【网络攻防】精通C语言的黑客才是真正的黑客!

精通C语言的黑客才是真正的黑客 黑客界,有两样重要的课程,一是计算机的本质,二是编译原理。相对于汇编等底层语言,它简单;相对于其它高级语言,它更为接近计算机;同样它对黑客的两大课程很有帮助…

我两小时学完指针,你学会数组/指针与函数需要多久?

数组与函数: 这段函数中 函数的参数是数组,注意数组作为函数参数时,数组名和数组元素个数时分别传递的。 指针与函数: 这段函数中的参数是指针变量,传入的是数组的数组名或者首元素的地址,然后用引领操作…

【C语言】C语言结构解析

C 程序结构 在我们学习 C 语言的基本构建块之前,让我们先来看看一个最小的 C 程序结构,在接下来的章节中可以以此作为参考。 喜欢编程的或者想学习编程的朋友可以加一下我的C语言编程交流群815393895,谢谢大家的支持 C Hello World 实例 C…

每一个程序员都是自学成才?

为什么CS学位并非是成为开发人员的唯一路径,因为每个开发人员在工作于他们的项目时学到了很多很多。 学习编程并不难 有兴趣学习或者已经在学习C语言的朋友可以加一下我的编程交流群815393895 除了CS学位,还有很多成为程序员的方法。如果你正行进在一…

不妨问问自己,学习C语言是为了什么?

1、首先是鸡汤,也就是为什么要学C语言。你可以先问自己,为什么我要学C语言?是为了应付考试,还是为了应聘,还是为了提高自己的编程能力。我想说的是,如果你打算以后长期从事计算机方面的工作,你就…

C语言灵魂——算法!

程序的灵魂—算法 一个程序应包括: 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。 对操作的描述。即操作步骤,也就是算法(algorithm)。 Nikiklaus Wir…

为什么会有那么多人放弃编程?

为什么许多编程人员最后都放弃了呢?小编帮你理清下原因,主要有以下几个 为什么这么多人选择放弃学习编程? 加班加点是家常便饭 在软件行业不加班的公司不是很多,区别就是加班强度。为什么程序员需要加这么多班,软件是一…

C语言基础知识梳理

C语言是面向过程的,而C++是面向对象的 C和C的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到…

很多人大一就开始学习C语言,你真的学到了吗?

好多人大一就学了C语言,但你有没有感觉学的不深,不扎实。或者说越学越迷茫,不知道它能做什么 我相信,这可能是很多朋友的问题,其实,这是很多初学者都会踩到的一个坑!C语言本身是一门很简单的语言…

C语言发展历史,C语言特点,C语言利于弊,入门须知三招

C语言是面向过程的,而C++是面向对象的 这些是C/C能做的 服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程…

程序员怎么看待C语言?最伟大?最落后?

一,前言 对我来说,C语言应该可以算得上是世界上最伟大的编程语言。全中国口气最大的程序员,业界称之为“垠神”,曾经发过文章吐槽过业界各种主流的编程语言(对Java,的Python稍微宽容一些)&…

如何学习C语言?就是这么简单粗暴!

C语言是面向过程的,而C++是面向对象的。 C和C的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理…

C/C++对编程的重要性!其他编程语言都是弟弟!

C语言是面向过程的,而C++是面向对象的 C和C的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得…

C语言其实不难,只是你没有找对方法!

C语言是面向过程的,而C++是面向对象的 C和C的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得…

想学好C语言?先把基础打好再说吧!

C语言是面向过程的,而C++是面向对象的 C和C的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得…

C语言新手最常见的问题!你在这里跌倒过吗?

C语言是面向过程的,而C++是面向对象的 C和C的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得…

用C语言做出你自己的七夕表白程序!

C语言是面向过程的,而C++是面向对象的 C和C的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得…