中年|入门编程,一定要从C语言开始吗?很多小伙伴因为选择而后悔四年
入门编程 , 一定要从C语言开始吗?很多小伙伴因为选择而后悔四年 , 那么我们刚刚进入大学应该怎么去选择呢?
本文插图
很多小伙伴在入门编程时 , C语言课程开始的 , 但最近有的小伙伴问我 ,学编程一定要从C语言开始吗? 直接学习JAVA可以吗?
大雄建议:在选择编程语言之前 , 搞清楚自己的编程目的 , 有没特别想打磨一个产品出来?
本文插图
比如有些程序员想自己打造一款Java 游戏 , 所以他选择了java 。 所以 , 一定程度上取决于你的编程目的 。
C语言现在已经很成熟 , 它的各种语法规则、思想都已经确立起来了 , 并对现在的很多语言产生很大的影响 。 所以作为底层语言也是很多人在入门编程时想要第一个学习的 。
但是任何事物都有其优点和缺点 , C语言也不例外 。 下面大雄带大家分别来看一下 。
C语言的优点
C语言的优点有三个:
(1)代码量小
(2)运行速度快
(3)功能强大
我们先看第一个优点 ,C语言的代码量很小, 这是什么意思呢?也就是说如果要完成同样一个功能 , 用C语言编写出来的程序的容量是很小的 , 而用其他语言编写容量就会比较大 。
比如 Microsoft Word 和 WPS , 它们同样都是办公软件 , 功能也差不多 , 但 WPS 的安装文件只有 50MB 左右 , 而 Microsoft Word 的安装文件超过 500MB , 有的甚至接近 1GB 。 原因就是 WPS 的内核是用C语言编写的 。
本文插图
C语言的第二和第三个优点是它的 运行速度比较快 和 功能强大。 我们可以通过一个例子来解释 。
世界上总共有三大操作系统:UNIX 操作系统是用纯C语言编写的;Windows 操作系统的内核也是用C语言编写的;Linux 操作系统仍是用纯C语言编写的 。
这 三大操作系统的内核全部都是用C语言编写的。 为什么用C编写 , 因为C语言的速度最快 。 计算机中所有的软件都是在操作系统上运行的 , 如果操作系统的速度很慢 , 那么在它基础上运行的软件的速度就更慢了 。 而且计算机中的所有硬件都是由操作系统控制的 。
本文插图
举个简单的例子 , 新建一个 Word 文档 , 这就意味着在硬盘上产生了这个文件 。 但是并没有直接控制硬盘 , 我们是通过操作系统提供的“右键单击”等功能来新建文件的 。
也就是说 , 操作系统给我们提供了一个界面 , 或者说是给我们提供了一种可操作的手段 , 通过这个手段我们可以删除文件、新建文件、打开文件或者修改文件 。
所以操作系统很重要 , 所有的硬件全部都是由操作系统控制的 。 而这么重要的东西只能用C语言来写 , 所以C语言很重要 。 为什么只能用C语言写?第一 , C语言速度够快;第二 , C语言可以访问硬件 , 所以它够强大 。
本文插图
为什么不能用 Java 写?首先 , Java 太慢了;其次 , Java 语言没有指针 。 没有指针就不能访问硬件 , 所以它的功能是不够的 。 指针是什么稍后会讲 , 它是C语言中非常重要的内容 。
C语言的缺点
C语言的缺点可以用下面三点来概括:
(1)危险性高
(2)开发周期长
(3)可移植性不强
我们先看第一点 。 假如写同样一个程序 , 在 Java 里面会报错 , 而在C语言里面是不会报错的 。 为什么?
因为 C语言设计的思想是 :想怎么写程序就怎么写 , 只要这种写法错得不是很离谱 , 就认为这么写有特殊的含义 , 可以通过 。 但 Java 不行:只要这么写有歧义 , 或者说这样写不太好 , 那么它都会报错 。
本文插图
【中年|入门编程,一定要从C语言开始吗?很多小伙伴因为选择而后悔四年】比如C语言中可以将一个浮点型数据赋给一个整型变量 , 编译时只会警告 , 因为会丢失精度 , 但是在 Java 中这样写就会报错 , 它在语法上就禁止这样写 。
所以不同的语言对同样一个问题有不同的处理方式 。
大家想想这样导致的结果是什么?
因为有歧义的程序也可以通过 , 这样就会有很多漏洞 , 黑客往往会抓住这些漏洞进行攻击 , 所以说 C语言比较危险。
这也是为什么C语言比较难学的原因 , 因为学完之后编写一个 程序很可能就是错 的 , 但又很难发现 。 所以前面说 C++ 从安全性上对C语言进行了升级 。
本文插图
第二个是它的 开发周期比较长。 因为C语言是面向过程的语言 , 面向过程语言的一个特点就是写大项目的时候很容易“崩溃” 。
当代码上到 10 万行的时候很容易崩溃 , 会出现各种各样莫名其妙的错误 。 这时候就需要用另外一种思想将整个程序的框架重新设计一下 , 即用面向对象的思想设计 。 这也是C语言现在没有 Java 流行的原因 。
C语言的第三个缺点是 可移植性不强。 这个主要是针对 Java 的 。 Java 的可移植性太强了 , 所以就显得C语言的可移植性不强 。
什么叫可移植性?就是说 Java 程序在哪个机器上都可以运行 , 而且结果一模一样 。 而C语言就不行 , C程序在其他机器上不一定能运行 。 而且就算能运行 , 结果可能也不一样 。
关于第一种编程语言 , 对于一名新手程序员来说 , 只要你不选特别难的 , 基本上没什么影响 。
选择你们想要学习的语言去努力学习吧!
大学想提升你的编程能力 , 成为一个强大的程序员找到一份好工作吗?不妨和一些志同道合的小伙伴一起学习成长!
C语言C++编程学习交流圈子 , 关注+私信【C/C++编程】微信公众号:C语言编程学习基地
有一些源码和资料分享 , 欢迎转行也学习编程的伙伴 , 和大家一起交流成长会比自己琢磨更快哦!
本文插图
声明:转载此文是出于传递更多信息之目的 。 若有来源标注错误或侵犯了您的合法权益 , 请作者持权属证明与本网联系 , 我们将及时更正、删除 , 谢谢 。邮箱地址:newmedia@xxcb.cn
推荐阅读
- 看观汽车|原装进口发动机,入门7万出头,看着动感坐着舒适,丰田致享如何
- 减肥|JAMA:减肥要趁早,25岁就该开始预防中年期肥胖
- 人到中年,常吃3种食物,健脑益智,美白抗衰,保护心血管
- 中年|《中国新说唱2020》全民搞哈开团日
- 中年|点燃创新之火,合力解除“缺芯”之痛
- 中年|画像“标签”生产实操指南(二)之产出清晰的标签数据需求
- 中年|从原型模式到浅拷贝和深拷贝
- 中年|宁愿2450亿打水漂,也不使用华为设备?如今却沦为“国际笑话”
- 中年|Angular export class AppComponent里定义变量的实现原理
- 中年|社交网络中的信息交流效率 社交网络并非越大越好