C语言的发展历史(简化)

1972年 -> 在B语言的基础上设计出了一种新的语言, 没错, 就是我们讲的C语言

1973年(初) -> C语言主体完成, 重写了UNIX操作系统, 随着UNIX的发展, C语言自身也在不断的完善


为什么选择C语言

一、 在计算机领域, C语言大小通吃

  1. 可以写网站后台程序 -> 使用Selet epoll poll函数等。
  2. 可以写出绚丽的GUI界面 -> 建议在windows中学习, Linux用作服务器的更多。
  3. 强大的程序库 -> 内存分配, 网络和URL解析、 字符串处理等。
  4. 可以写大型游戏的引擎 -> 要用gtk+, 比较难, C++相比C是一个更普遍的选择, 使用C++的引擎有COCOS2D-x 面向3a开发的udk等都是最典型的例子。
  5. 可以写出另一个语言 -> 比如 C++、 JAVA。
  6. 可以写操作系统和驱动程序 -> ReactOS、 Windows、 Linux等。

     一句话, 没有C语言干不了的事情。

二、 掌握了C语言, 其他类似语言不学自通

就算没有不学自通的话, 学习别的编程语言也不会花太大的力气才能学会,

三、 C语言的优点

  1. 代码简洁、 紧凑 、 灵活性高
  2. 使用方便
  3. 功能强大
  4. 执行效率高
  5. 结构化语言

四、 当然没有完美的程序C语言也是有缺点的

  1. 危险性高
  2. 开发走起长
  3. 可移植性不强

程序设计语言

第一代 -> 机器语言 (以二进制代码0、 1, 构成)

第二代 -> 汇编语言 (add加法、 sub减法等)

第三代 -> 高级语言 (比如C语言)

速度对比(大致的了解一下)

机器语言 < 汇编语言 < 高级语言

机器语言的速度最快。


什么是面向过程 什么是面向对象(大致的了解一下)

为什么面向过程会比面向对象慢的, 可以用五子棋程序来说明。

面向过程

开始游戏 -> 黑子先走 -> 绘画画面 -> 判断输赢 -> 轮到白子 -> 绘制画面 -> 判断输赢 -> 返回步骤2(黑子先走)


面向对象

黑白双方, 这两方的行为是一模一样的 -> 棋盘系统、 负责绘制画面 -> 规则系统, 负责判定(例如  犯规、输赢等)

第一类对象(玩家对象)负责接受用户输入, 并告知第二类对象(棋盘对象)棋子布局的变化, 棋盘对象接收棋子的变化就要负责在屏幕上面显示出这种变化, 同时利用第三类对象(规则系统)未对棋盘进行判定。

        其实学习终归是一件痛苦的事情, 所以呢, 面对学习你还是的得要认真用功, 努力的去学习, 享受的是什么? 是学习之后获得的那种成就, 快乐是从成就当中来的。        ————翁恺

课后学习

  • 了解C语言是如何演变而来的。
  • 了解机器语言、 汇编语言、 高级语言的区别、 及优缺点。
  • 在本文下方评论(指正作者的错误 与 随笔意见), 让作者写出更好的文章。

C语言奇妙之旅_发展历史相关推荐

  1. C语言奇妙之旅_环境搭建

    爱护"环境"从我做起 课前回顾         C语言是由什么演变而来的 ALGOL -> CPL -> BAPL -> B -> C 机器语言. 汇编语言 ...

  2. C语言奇妙之旅_if大家庭

    if 你可以去翻译软件翻译一下, 可以理解为假如! if是流程控制中的选择: 某些代码可能执行, 也可能不执行! /* * 编写时间: 2018/7/24 * 编写作者: 流光飞霞 * 程序功能: i ...

  3. C语言的概述和发展历史(C语言编程之旅)

      各位bro,你们好,当你点开这篇博客时,我由衷的希望你们能够在这字里行间找到想要的答案.每个人都在寻找着答案,而我也在寻找着自己的答案,谨以此篇开启我自己的C语言学习之旅,2023年你我携手同行, ...

  4. keras cnn注意力机制_从发展历史视角解析Transformer:从全连接CNN到Transformer

    编译 | bluemin校对 | 陈彩娴Transformer架构在机器学习领域(尤其是NLP里)是一项热门研究,为我们带来了许多重要成果,比如:GPT-2.GPT-3等写稿机器人:第一代GPT及其性 ...

  5. 学完java学swift_前言最近学完Swift之后一直没有机会实战,发现由于Swift发展历史原因,目前网上大部分的算法都是使用C、Java或其他语言实现的,几乎没有使用Swift实...

    前言 最近学完Swift之后一直没有机会实战,发现由于Swift发展历史原因,目前网上大部分的算法都是使用C.Java或其他语言实现的,几乎没有使用Swift实现的,所以自己打算使用Swift去实现一 ...

  6. java语言发展历史_Java编程语言的历史和未来

    java语言发展历史 通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序. 开始免费试用! 作为互联网上著名的编程语言 ,Java对人们如何浏览数字 ...

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

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

  8. 360浏览器登录_浏览器发展历史介绍及当今主流浏览器的详细对比

    作为访问internet的工具,浏览器已经成为我们日常生活中必不可少的上网工具了,它能让你加入全球的网络,通过一个窗口就能够连接世界.当你用浏览器时有没有想过浏览器的发展历史?面对市场上繁多的浏览器你 ...

  9. 计算机发展历史小报图片大全,【科技小报图片大全】科技小报简单又漂亮_科技小报内容资料大全_(2)_亲亲宝贝网...

    科技小报图片大全:科技的分类 生命科学 现代生命科学技术,在20世纪得到了空前的发展,特别是DNA双螺旋结构的发现和人类基因组计划的实施,更使得生命科学技术成为21世纪高新科技的主流.由于生命科学技术 ...

最新文章

  1. 【Zookeeper实战】Zookeeper入门到实战看这篇就够了
  2. 【CVPR 2021】首次实现将GAN压缩22倍,性能比原始模型还高!
  3. Golang sync
  4. python自动化办公 百度网盘-Python自动化办公实战教程2020最新带源码
  5. 理解 async/await 的执行
  6. opencv简单滤波
  7. Qt Creator向项目添加库
  8. [AtCoder Grand Contest 048] D - Pocky Game(区间dp + 博弈)
  9. 安卓清理垃圾清理代码_从战中清理代码
  10. CVPR 2021 出自港中文,对抗变换提高对抗样本的可迁移性
  11. 基于JAVA+SpringBoot+Mybatis+MYSQL的旅游信息管理系统
  12. python读取json并列_python解析含有重复key的json方法
  13. HTML 如何禁用缓存
  14. 数据结构与算法 完整版单链表(附GIF)
  15. 向Maven的本地库中添加jar文件
  16. 约瑟夫问题-sdut
  17. 【PL/SQL】处理数据
  18. Selenium 高阶应用之WebDriverWait 和 expected_conditions
  19. centos7磁盘备份和还原
  20. php ping 检测电脑在线,怎么ping网速(教你如何用ping命令来检测电脑的网速)

热门文章

  1. 一把梭哈,轻松解决CentOS7离线RPM方式安装perl工具
  2. 笔记本电脑linux系统下载,荣耀笔记本Linux版安装Windows系统,电脑小白必学的一招!...
  3. 【安全知识分享】消防安全知识讲座(附下载)
  4. windows kill 具体端口 线程 关闭nginx
  5. 必应地图控件(WPF版)添加中国地图
  6. Zookeeper Zap协议
  7. Android全面屏显示不全下方有黑色解决方案
  8. IDEA代码提示中显示api的注释
  9. linux添加用户出现错误/usr/bin/xauth: file /home/chenwi/.Xauthority does not exist
  10. H3C与华为--不应错过的专业常识