绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
为什么之前学c语言学得云里雾里,学完python后再回过头看c,很多问题都一目了然了?
2023-03-02 14:12:12
来源:技术让梦想更伟大

作者李肖遥


“为什么我之前学c语言学得云里雾里,学完python之后再回过头来看c语言,很多问题都一目了然了?”偶然看到这样的一个问题,简单说下自己的看法。


一直认为:编程语言之间很多都是融汇贯通的,学好一门,其他语言都是可以触类旁通的。


首先,两种语言的性质不同。


Python 是一种脚本语言,所见即所得,比较符合人的阅读习惯,就像,读一般文字。Python用于互联网和自动化测试的开发。


C 语言是一种语言,特点运算块,数据结构复杂,做大型项目,比如嵌入式,用C较多。


C语言

其实C本身也不难,难的是现在的程序员很少去深入了解计算机硬件本身了,比如CPU的运行机制,寄存器操作,内存读写等等这些,这些都是对应底层的硬件操作。


C语言更多的是用在这些地方,还有操作系统核心,编译器本身等等,基础的程序都是C写的。


c语言是一种面向过程的一种“”语言。为什么说只是语言,主要是因为它有着汇编语言的影子和固有思维(面向过程),主要的运用环境也是在微处理器。


说白了,c语言关心的是如何让代码完美的运行在微处理器上,并且处理时间要快。


所以,学好c语言不仅仅是学会c语言语法知识,还需要扎实的硬件基础,数据结构等知识。因为,在c语言的世界里,除了比较难用的库函数,很难找到可以直接用的库(比如双向数据链,硬件驱动)。


C就是描绘世界的基石,C写的基本库和代码块被后面的各种语言像磊砖头一样搭成各种房子建筑。


我感觉这就想一个人看书,你能看懂书里写的故事,但是让你来写书你就不会了。


python


python 都是只关心这个东西是干什么的,你说你理解了c也是理解了他是干什么的,但是具体怎么干,怎么干的好你就说不出了。


而在Python的世界里,几乎你能想到的功能,都能找到,而且,Python是解释性语言,简单易懂,不需要懂硬件和枯燥乏味且难懂的数据结构等理论,所以上手会很容易,组合各个功能强大的库函数,完成各个功能的实现。


也许是因为学了Python,对编程逻辑有了很好的理解,融会贯通之后能比较容易看懂c语言的语句,但是,也仅仅只是一部分语句。


正如前面说的,c语言本身语法只是很少的一部分,精华部分在于如何绝妙的和硬件打交道,在有限的资源里,完成各项任务。


就像理解一种模式相对来说还是比较简单,但是设计一种模式难度是相当大,这两种语言就是针对了两个方向,差距还是很大的。


触类旁通


其实很多事情都是触类旁通的,虽然不同的编程语言有一些不同,但是编程中很多思想都是一样的。


python属于编程语言,你学会了以后可以说你的编程思维就已经形成了,这时你再去学c肯定是会有一定帮助的。


就像我们高中时很多知识当时感觉是很难理解的,但是当你上完大学后再回过来看,貌似很多就容易理解了!



编程语言是有很多共通的东西,学会了python,其实也就掌握了编程语言的一些通用的特性,再看c,其实也就在通性上有些具体的修改或者增加自己的特性,看起来也就一目了然了。



举例


C语言就像是原著版的小说《红楼梦》,python就像是电视剧版的的《红楼梦》。


当你看小说原著时,实在太难看懂,里面的人物关系过于复杂,看了半天不知所云,往往在细节地方反复纠缠而难以理清主线,也没人告诉你谁是主要人物(总共出场900多人),只好眉毛胡子一把抓。


这时候,你去看了电视剧,发现电视剧竟然基本看懂了,至少主线搞清楚了,主要人物的人物关系搞清楚了。


这时候回过头再去看原著,发现原著突然变得简单起来。


然后,当你看完原著,又去看电视剧时,发现原来看电视剧很多搞不清楚的地方,竟然也变得清晰起来。


因为原著内容多,很严谨。在电视剧里没有解释清楚的,原著中都有解释。


当然也有人说:由python入c难,由c入python易;这些都是自己一些个人看法罢了。


‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧


分享好友

分享这个小栈给你的朋友们,一起进步吧。

C语言编程开发
创建时间:2019-12-03 10:46:09
C语言C++知识内容传递,让编程变得更容易。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • jasonhsp
    栈主
  • gaokeke123
    嘉宾

小栈成员

查看更多
  • ?
  • 小尾巴鱼
  • karspb
  • nt1979
戳我,来吐槽~