首页 > 其他分享 >C语言概述

C语言概述

时间:2023-12-03 12:00:31浏览次数:44  
标签:语言 STL C++ C语言 UNIX 概述 OS

1.为什么要学习C语言

  1>.C语言的起源和发展

    程序设计语言的发展:机器语言(低级语言)——汇编语言(中级语言)——高级语言

    低级语言:使用的是一串二进制代码

    中级语言:使用助记符(英文单词)来代替一串二进制代码(容易记忆,不容易出错)

    高级语言:

      结构化语言:Fortran、Basic、C、Pascal

        结构化是一种思想,但是这种语言有缺陷,所以从80年代开始我们开始研究另一种语言叫面向对象思想的语言。因为C++太复杂了,SUN公司对C++进行改写研究出JAVA语言。JAVA语言与C#语言是一个级别的语言。

        结构化语言的缺陷:它的数据和操作是分离的,导致写大项目的时候就容易导致各种各样的问题。

      面向对象语言:Algo、Ada、Simula67、Smalltalk、C++、JAVA、C#

      结构化语言中最重要的是C语言,面向对象语言中最重要的是C++语言。

    运行速度对比:低级语言>中级语言>高级语言

语言发展历程:

    最早ALGOL 60语言:1960年产生的,是一种算法语言,这种语言离硬件比较远

    1963年:剑桥+伦敦 大学从 ALGOL 60 的基础上研究出CPL语言,这种语言离硬件比较近,但是功能不强,离硬件还是很远。

    1967年:剑桥大学对 CPL语言 进行简化研究出 BCPL语言

    1970年:贝尔实验室肯汤森在BCPL语言的基础上进一步简化研究出B语言,并使用B语言写出了世界上第一个操作系统UNIX OS。B语言主要用来开发UNIX OS,他还有一些缺点:比如不能处理数据类型和结构体等。为了解决这些问题,贝尔实验室丹尼斯·里奇在1972年设计了C语言,随后两人合作用C语言重新编写了UNIX OS的第5个版本。(UNIX OS 使用场景:大型机、商务机。)

    C语言的流行是因为UNIX OS,因为当时UNIX OS是世界上第一个操作系统,并且是开源的,使用的人很多,很多人在使用UNIX OS的时候会发现UNIX OS有很多的问题,又因为UNIX OS是C语言编写的,所以有越来越多的人开始学习C语言。

    BPL(B语言,前身是BCPL语言)、C、C++语言都是贝尔实验室(相当于公司性质)研究出来的

 

C++语言的发展历程:

世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言。之后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植。

1971年,瑞士联邦技术学院N.Wirth教授发明了Pascal语言。Pascal语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。

20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他使用过Simula和ALGOL,接触过C。他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。以C为背景,以Simula思想为基础,正好符合他的设想。1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。1983年该语言被正式命名为C++。自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增加了新的特征并作了一些修改。第一次修订是在1985年,第二次修订是在1990年,而第三次修订发生在c++的标准化过程中。在20世纪90年代早期,人们开始为C++建立一个标准,并成立了一个ANSI和ISO(Intemational Standards Organization)国际标准化组织的联合标准化委员会。该委员会在1994年1月25曰提出了第一个标准化草案。在这个草案中,委员会在保持Stroustrup最初定义的所有特征的同时,还增加了一些新的特征。

在完成C++标准化的第一个草案后不久,发生了一件事情使得C++标准被极大地扩展了:Alexander stepanov创建了标准模板库(Standard Template Library,STL)。STL不仅功能强大,同时非常优雅,然而,它也是非常庞大的。在通过了第一个草案之后,委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。

委员会于1997年11月14日通过了该标准的最终草案,1998年,C++的ANSI/IS0标准被投入使用。通常,这个版本的C++被认为是标准C++。所有的主流C++编译器都支持这个版本的C++,包括微软的Visual C++和Borland公司的C++Builder。

      

 

  2>.C的特点

  3>.C的应用领域

  4>.C的重要性

2.怎样学习C语言

 

3.学习目标

 

4.常见问题

  1.学习JAVA为什么建议先学C语言

  

5.课程计划

 

标签:语言,STL,C++,C语言,UNIX,概述,OS
From: https://www.cnblogs.com/shandian-fox/p/17872778.html

相关文章

  • C语言之文件(下 · 重要)
    在上一篇文章中,我讲述了有关ASCII文件的读写,那二进制文件的读写又该怎么进行编码呢?二进制文件的读写二进制文件保存的是数据在机器内部的映像,将数据在机器内部的映像原式原样的写入文件可以用fwrite函数;将文件中的二进制比特串原式原样写入某个变量可以用函数fread。fwrite函数fwri......
  • C语言-运算符和分支循环语句
    extern: 表示声明。没有内存空间。不能提升。const: 限定一个变量为只读变量。volatile: 防止编译器优化代码。 volatileintflg=0;register: 定义一个寄存器变量。没有内存地址。 registerinta=10; 字符串: C语言中,用双引号引着的一串字符,称之为字符串。一定有一个......
  • 表达式-C语言-2023/12/2
    首先介绍表达式:......
  • C语言【交换两变量值】
    C语言【交换两变量值】//1、临时变量intx=10,y=20;inttemp=x;x=y;y=temp;//2、相加再减的方法inta=10,b=20;a=a+b;b=a-b;a=a-b;//3、异或的方法,利用A^A=0,A^0=A的特性inti=10,j=20;i^=j;j^=i;i^=j;注意:如果存在两个指针......
  • 学习C语言必备的基础知识详解
    (⽬录)前言学习C语言的第一步,肯定是要先去学习了解一下相关的概念和符号,我们写的代码就是由一堆规定好的有特殊含义的符号组成的。1、数据类型C语言的数据类型细分出来会有很多种,每种数据类型占内存大小都不同,对于刚接触编程语言的人来说,确实很让人头疼。其实存在这么多的类型,......
  • c语言作业_1
    作业标题(649)从大到小输出作业内容写代码将三个整数数按从大到小输出。例如:输入:231输出:321#include<stdio.h>intmain(){inta=2;intb=3;intc=1;scanf("%d%d%d",&a,&b,&c);//从大到小输出3个整数abcif(a<b){inttm......
  • c语言作业_2
    作业标题(659)分数求和作业内容计算1/1-1/2+1/3-1/4+1/5……+1/99-1/100的值,打印出结果#include<stdio.h>intmain(){ inti=0; doublesum=0.0; intflag=1; for(i=1;i<=100;i++) { sum+=flag*1.0/i; flag=-flag; } printf("%lf\n",sum);......
  • 位运算符-C语言-2023/12/2
    不全面......
  • 浙大翁恺-C语言入门-第二周②
    但现在,我不再畏惧。-Faker《不死者》---运算符(符号)、算子(进行计算的量)C语言,开始的时候是用的打字机,打字机没有乘除号,所以用星号*和右斜杠/分别代表乘,除。这样就有了加减乘除四则运算。另外特殊的取余操作,用的百分号%,取余获得两个数相除的余数。C=A%B;思考问题:计算时间......
  • SAP ABAP 各种增强技术(Enhancement)概述 - 所谓第一代,第二代,第三代增强技术的出处试
    本文回答笔者这篇教程:如何通过增强(Enhancement)的方式给SAPABAP标准程序增添新功能评论区的读者留言:这个和第一二三四代以及badi增强有什么联系呢?笔者从2007年一月就在SAP中国使用ABAP进行SAP产品开发了,说实话SAP内部不会把ABAP各种增强技术简单得冠之以第一......