
Python 也能拿来和 C 语言比?我一个 Javaer 都看不过去了(暗示:编程语言根本就没有好坏之分)!
不好意思,有点飘~
别打我,别打我,听我慢慢讲。
其实 Python 和 C语言都是非常优秀的编程语言了,只不过,针对的场景不同。
Python 适用于 AI 智能,机器学习等等各种高端场景;
C语言的应用场景其实比 Python 更少一点,目前就只剩下嵌入式这块蛋糕了吧。
这里有一个误点哈,Python 易入门。其实不是的,人工智能和机器学习是 Python 应用的重头戏,但这方面的岗位对学历的要求非常高,竞争非常残酷。
我身边认识的 Python 工程师,基本上都是研究生学历以上,统招本科在竞争这些岗位时压根就没有优势,除非天赋异禀。
题主问:“学习python与c语言哪个好?”
其实是在问,“新手学习 Python 和 C语言,哪个好?”
主语没了。就变成编程语言之争了,那根本就没有结论,PHP 还说自己是最好的编程语言呢?
(PHP:劳资都快没了,还有人在黑我?)
加上主语,其实就好选择了。
新手必然是选择 C语言好一点,为什么?
90%以上的高校会选择 C语言作为入门,这是不争的事实,因为 C语言是计算机程序语言的基础,学好 C语言,对以后学习 Java、C++、Python 都大有裨益。
大部分的编程员都是由 C语言扩展或者衍生而来的,C语言可以用于开发比较底层的东西,比如说驱动啊、操作系统啊,另外,C语言在嵌入式领域也大有可为,因为嵌入式对程序的性能要求比较高,而 C语言的性能可以说是其他编程语言无法追赶的。
在整个计算机知识体系中,C语言起到了承上启下的作用,向上可以学习应用层级的的编程语言,比如说 Java、C++、Python 等;向下可以学习汇编语言,以及计算机硬件层级的内容,比如说 CPU、内存这些。
可能有些人会说,C语言不那么适合入门,无非是因为:
但其实这才是更大的误解。
不得不承认,C语言更像是《九阳神功》,练会了这门内功,再练乾坤大挪移这种高端的武功就会 easy 很多。
推荐一些学习 C语言的经典书籍吧,比如说《C primer plus》、《C 和指针》等等。
编程是听不会,也看不会,只能练会的。
你应该待在电脑前面,看视频就用电脑看,不要用手机看,把手机静音或者关闭,切断干扰。
看书,也要在电脑前面。
遇到需要手敲代码的时候,就暂停视频,或者把书放一边,然后在电脑上噼里啪啦地敲起来。
学习 C语言需要的环境很简单,只需要电脑上装一个 VS Code 就可以开始了。
看到新的知识点就直接添加到你的代码里跑起来试试,看看执行结果是否和预期的一样。
如果出错了,就看一下出错信息提示的什么,然后尝试自己解决一下,如果找不到原因,再百度啊谷歌啊,直到把错误解决为止。
一开始的内容相对简单,你只需要了解基本的概念,绝大部分只要比对视频上或者书本上的源码敲一遍,只要单词没有敲错,标点符号没有敲错,基本上都能顺利跑通。
1)函数
函数,在 Java 里叫方法。就拿人来说,有性别、年纪等状态,有跑、睡觉、打豆豆等行为。状态在程序里面叫字段或者属性,行为就是方法或者函数。
函数就是包含了多条语句的代码,举个例子。
printf 是标准库里的函数,可以被 main 函数调用。
2)递归
递归是什么呢?
举个例子:
哈哈,get 到了吧?
就是自己调用自己的函数。
3)指针☆
C 语言的真正灵魂就是指针,但指针这块,并不容易学,很多初学者很容易卡到这停滞不前。
什么是指针呢?
在声明变量的时候,如果前面加了 * 号,就表明这是一个指针变量。
简单解释一下这段代码。
来看一下程序的输出结果:
var_age 变量的地址: 0x7ffee3b205b8
有了指针,一切的算法都多了一层灵活度,代码的表达能力突然就“第五层”了,当然了,这也意味着,初学者学习的难度会增加。
要想充分地理解指针,除了多练没有别的办法,练的多了,自然就明白指针能干嘛了。
大道至简,指针对到底,就是表示数据地址的数据——套娃从此就开始了无限循环。
4)结构体
数组可以用来存储相同数据类型的变量,而结构体允许存储不同类型的数据项。
5)内存管理
C语言为内存管理提供了一些标准函数,在 <stdlib.h> 的头文件中。
编程中,如果预先知道字符型数组的大小,可以在定义的时候直接声明。
但如果不确定字符型数组大小的时候,就需要先定义一个指针,该指针指向未定义的、所需内存大小不确定的字符,之后根据需求来分配内存。
程序输出:
等学了内存分配、结构体,C语言的世界基本上就完整了。
当然了,一个暑假能学到这已经算是很牛逼了。
有了 C 语言的基础,再学习 Python 或者其他任意一门编程语言就会简单得多。
安利一波浙大翁恺教授的 C语言课,共两门。
看过的都说好。作为第一门编程课,《程序设计入门-C语言》这门课程可以零基础学习。
在学习 C语言的时候记得看一下《程序是如何跑起来的》、《编码》这两本书,对学习 C语言会很有帮助。
记住:程序设计是实践性很强的课程,听不会,也看不会,只能练会。你必须通过大量的编程训练,在实践中掌握编程知识,培养编程能力,并逐步理解和掌握程序设计的思想和方法。
推荐 3 个练手项目吧。
1)计算器,进行加、减、乘、除操作:C 语言实现简单计算器_C - 蓝桥云课
2)2048 游戏:https://www.shiyanlou.com/courses/155
3)实现自己的编程语言,一个 1000 行左右代码的简单 Lisp:https://www.shiyanlou.com/courses/670
认真跟着做,真本领你就学到手了,再学习 Python 也是轻而易举的事。
我是 @沉默王二 ,希望回答能给你一些帮助,笔芯~
