初识C语言

--本文参考书籍:

        Stephen Prata的《C Primer Plus》

前言

C 语言是一门抽象的、面向过程的语言,C 语言广泛应用于底层开发,C 语言在计算机体系中占据着不可替代的作用,可以说 C 语言是编程的基础,也就是说,不管你学习任何语言,都应该把 C 语言放在首先要学的位置上。下面这张图形象地说明 C 语言的重要性

什么是C语言

  C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。

C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。

当前最新的 C 语言标准为 C18 ,在它之前的 C 语言标准有 C17、C11...C99 等。

为什么选择C语言

  在过去的长时间里,C语言已经成为了最重要、最流行的编程语言之一。它的成长归功于使用过它的人都对其

非常满意。在过去的20年间,虽然很多人都从C语言转而使用其他语言(例如:C++,Java等),但是C语言凭借其自身实力在众多语言中脱颖而出。

C语言相较于其他高级语言尤其自己独特的优势,C语言在运行时候其效率是非常高的,并且后来的许多边长语言都是基于C语言来进一步拓展的,故有“C生万物”之说。

设计特性

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

高效性

  C语言是一门较高效的编程语言。在设计上,它充分利用了当下计算机的优势,C语言程序相对更紧凑,运行速度更快。C语言具有通常是汇编语言才具有的微调控制能力(汇编语言是为特殊的中央处理器单元设计的一系列内部指令),可以根据具体情况微调程序以获得最大运行速度或最有效的使用内存。

可移植性

  C 语言是一门具有可移植性的语言,这就意味着,对于在一台计算机上编写的 C 语言程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作量。

强大而灵活

  C语言功能强大且灵活(计算机领域经常使用这两个词)。

  例如,功能强大的UNIX操作系统,大部分是用C语言编写的;其他语言(如perl,python,BASIC等)的许多编译器和解释器都是使用C语言编写的。因此,在UNIX机上使用FORTRAN时,最终时由C程序生成最后的可执行程序。C程序可以用于解决物理学和工程学的问题,甚至可以制作电影的动画特效。

面向程序员

  C语言是为了满足程序员的需求而设计的,程序员利用C可以访问硬件、操控内存中的位。C语言由丰富的运算符,能让程序员简洁地表达自己的意图。大多数C实现都有一个的大型的库,包含众多的有用的C函数。这些函数用于处理程序员经常需要解决的问题。

C语言的应用范围

  早在20世纪80年代,C语言就已经成为小型计算机(UNI1X系统)使用的主流语言。从那以后C语言的应用范围扩展到微型机(个人计算机)和大型机(庞然大物)。许多软件公司都用语言来开发文字处理程序电子表格编译器和其他产品,因为用语编写的程序紧凑而高效。更重要的是,C程序很方便修师移到新型号的计算机中也没什么问题。

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

20世纪90年代,许多软件公司开始改用C++来开发大型的编程项目。C++在C语言的基础上嫁接了面向对象编程工具。C+几乎是C的超集,这意味任何C程序差不多就是一个C++程序。学习C语言,也相当于学习了许多C++的知识。

C语言的应用范围

虽然这些年来C++和JAVA非常流行,但是C语言仍是软件业中的核心技能。在最想具备的技能中,C
语言通常位居前十。特别是,C语言已成为嵌入式系统编程的流行语言。也就是说,越来越多的汽车、照
相机、DVD播放机和其他现代化设备的微处理器都用C语言进行编程。除此之外,C语言还从长期被
FORTRAN独占的科学编程领域分得一杯羹。最终,作为开发操作系统的卓越语言,C在 Linux开发中扮演
着极其重要的角色。因此,在进入21世纪的第2个10年中,C语言仍然保持着强劲的势头。
简而言之,C语言是最重要的编程语言之一,将来也是如此。如果你想拿下一份编程的工作,被问到
是否会C语言时,最好回答“是”。

C primer plus笔记之初识C语言的更多相关文章

  1. go 学习笔记之初识 go 语言

    Go 是一种开源编程语言,可以轻松构建简单,可靠,高效的软件. 摘录自 github: https://github.com/golang/go,其中官网(国外): https://golang.or ...

  2. Go学习笔记:初识Go语言

    Go语言简介 Go语言是Google(谷歌)公司开发的一款静态型.编译型并自带垃圾回收机制和并发的编程语言. Go语言的风格类似于C语言.其语法在C语言的基础上进行了大幅的简化,去掉了不需要的表达式括 ...

  3. 《Go并发编程实战》读书笔记-初识Go语言

    <Go并发编程实战>读书笔记-初识Go语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在讲解怎样用Go语言之前,我们先介绍Go语言的特性,基础概念和标准命令. 一. ...

  4. [编程笔记]第一章 C语言概述

    //C语言学习笔记 第一讲 C语言概述 第二讲 基本编程知识 第三讲 运算符和表达式 第四讲 流程控制 第五讲 函数 第六讲 数组 第七讲 指针 第八讲 变量的作用域和存储方式 第九讲 拓展类型 第十 ...

  5. C++ Primer学习笔记(二)

    题外话:一工作起来就没有大段的时间学习了,如何充分利用碎片时间是个好问题. 接  C++ Primer学习笔记(一)   27.与 vector 类型相比,数组的显著缺陷在于:数组的长度是固定的,无法 ...

  6. 《30天自制操作系统》笔记(02)——导入C语言

    <30天自制操作系统>笔记(02)——导入C语言 进度回顾 在上一篇,记录了计算机开机时加载IPL程序(initial program loader,一个nas汇编程序)的情况,包括IPL ...

  7. Storm学习笔记 - Storm初识

    Storm学习笔记 - Storm初识 1. Strom是什么? Storm是一个开源免费的分布式计算框架,可以实时处理大量的数据流. 2. Storm的特点 高性能,低延迟. 分布式:可解决数据量大 ...

  8. 初识 go 语言:方法,接口及并发

    目录 方法,接口及并发 方法 接口 并发 信道 结束语 前言: go语言的第四篇文章,主要讲述go语言中的方法,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示例,可直接运行. 方法,接 ...

  9. 初识 go 语言:数据类型

    目录 数据类型 指针 结构体 数组 切片 切片的方法 映射 函数闭包 结束语 前言: go语言的第三篇文章,主要讲述go语言中的数据类型,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示 ...

  10. 初识 go 语言:语法

    目录 语法 for 循环 if 语句 switch 语句 defer 语句 defer 栈 结束 前言: go语言系列第二篇,主要讲述go语言的语法,如循环,if判断,swich语句,defer语句, ...

随机推荐

  1. MSSQL慢查询查询与统计

    查询MSSQL慢查询: SELECT TOP 20 TEXT AS 'SQL Statement',last_execution_time AS 'Last Execution Time' ,(tot ...

  2. 流式查询1. mybatis的游标Cursor,分页大数据查询

    流式查询流式查询 指的是查询成功后不是返回一个集合而是返回一个迭代器,应用可以通过迭代器每次取一条查询结果.流式查询的好处是能够降低内存使用.例如我们想要从数据库取 1000 万条记录而又没有足够的内 ...

  3. 新一代的团队协作平台-Teamlinker

    Teamlinker是一个集成了不同功能和模块的团队协作平台.你可以联系你的团队成员,分配你的任务,开始一个会议,安排各项事务,管理你的文件等.并且支持线下免费部署,功能和线上版本一致. 主页 对于很 ...

  4. 全网最适合入门的面向对象编程教程:02 类和对象的Python实现-使用Python创建类

    全网最适合入门的面向对象编程教程:02 类和对象的 Python 实现-使用 Python 创建类 摘要 本文主要介绍了串口通信协议的基本概念.串口通信的基本流程.如何使用 Python 语言创建一个 ...

  5. 关联的巧妙用法limit_choices_to

    sa_no = models.ForeignKey(CU004HModel, verbose_name='销货单', on_delete=models.PROTECT, related_name='C ...

  6. 交叉熵、KL 散度 | 定义与相互关系

    1 KL 散度 对于离散概率分布 \(P\) 和 \(Q\) ,KL 散度定义为: \[\text{KL}(P \| Q) = -E_{x\sim P}\log P(x)-\log Q(x) \\ = ...

  7. Jmeter函数助手38-isVarDefined

    isVarDefined函数用于判断变量是否存在. 变量的名称:填入变量名称.如果变量存在返回true,如果不存在返回false 1.先一些定义变量 ${__isVarDefined(now)},no ...

  8. [rCore学习笔记 020]第二章作业

    写在前面 本随笔是非常菜的菜鸡写的.如有问题请及时提出. 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 编程题 ...

  9. 5、SpringMVC之域对象共享数据

    5.1.域对象简介 请求域(request):一次请求范围内有效 会话域(session):一次会话范围内有效 应用域(application):整个应用范围内有效 5.2.环境搭建 5.2.1.右击 ...

  10. 【Java-GUI】07 Swing01 入门案例

    Swing是Java自己开发出的一套GUI组件,不同于AWT去调用操作系统的GUI 正是因为非系统平台的GUI,所以程序运行的要慢一些 涉及的设计模式:MVC模式 Model(组件对象状态) View ...