如何学习C语言
• 我们推荐初学者使用免费教育网站 “菜鸟教程” 出品的C语言教程来对C语言进行基础了解,网址如下:
菜鸟教程
https://www.runoob.com/cprogramming/c-tutorial.html
菜鸟教程还提供了网站在线化的在线编程页面
C语言在线编程工具:
https://www.runoob.com/try/runcode.php?filename=helloworld&type=c
- • 学习完成以上教程之后就会掌握C语言的基础,之后就可以开始玩转我们的有趣的Arduino控制器啦!有兴趣的同学可以来实验室使用我们提供的Arduino进行各种的控制实验。
- • C语言是大一的同学们下学期会开设对的专业课,不止步于基础学习的同学当然可以自己学更多更深层次的知识了。
根据老师、学长、以及网络优质资源整合,我们推荐以下经典优质的C语言教程:
【浙江大学翁恺老师视频教程】
https://www.bilibili.com/video/BV19W411B7w1?share_source=copy_web&vd_source=ed78b196e1ff74a83c6ef77428cbddbc
免费教育网站【微学苑】
https://www.weixueyuan.net/c/
拓展知识
C语言需要编辑器和编译器。写好的C语言通过编译器翻译为机器能读懂的机器语言(0和1),经过复杂的编译之后转化成了可执行文件。这一系列过程深入去讲是很复杂的,但现在我们都把开发C语言的环境集成在一个软件中。这类软件叫做IDE(集成开发环境),它集成了编辑器、编译器、调试器等。
C语言的IDE有DEV C++ 、 Codeblocks、 Visual Studio、Clion等,大家根据兴趣自行了解。
善用搜索引擎,特别哔哩哔哩、中国大学MOOC、CSDN、知乎……都提供很多优质免费教程,大家要学会自己整合,自己发现。
以上介绍了如何去学C语言,那么C语言到底是什么?能做什么?
C语言的诞生
计算机诞生之后,为了让计算机听得懂人类的话,科学家创造了众多种类程序语言。人类能看懂的高级语言经过翻译之后就变成了计算机能读懂的机器语言,从而实现向计算机发送指令。
第一代语言 机器语言
计算机只能读懂0和1的二进制数字,因此机器语言只能用0和1来表示,过于底层的机器语言就造成即使写一个非常简单的程序仍需要大量的0和1组合的语言来实现,对人类而言是复杂的工作。
第二代语言 汇编语言
0和1的组合过于繁杂,因此科学家用一些容易理解和记忆的字母和单词来代替一个特定的指令。比如:
# 简单示例
START 表示 程序的入口
END START 表示 程序结束
DATA SEGMENT 表示 定义数据段,可以把数据放入这个段内
DATA ENDS 表示 数据段结束
第三代语言 高级语言
Dennis Ritchie为了移植Unix操作系统到不同的电脑上而基于BCPL语言开发出了C语言,并且由于C语言在当时太好用了,于是1973年的时候Unix操作系统的核心都使用C语言进行改写了,这也是C语言第一次应用在操作系统的核心编写上。
之后的日子里火遍全球,直至现在仍然是最好用的语言之一。关于C语言的标准先后发布过ANSI、C89、C90、C99、C11、C18、C2X 有兴趣的同学自行查资料了解。
C语言如何工作
C语言属于高级程序语言,是我们人类可以读懂的语言,C语言文件的后缀名为“.C” ,编写完成之后我们要通过GCC编译器翻译为计算机可以读懂的机器语言。
在这里举一个形象但不准确的例子:
C语言是中文,机器语言(0和1)是英语。小李说中文(C语言),小王说英文(机器语言)。那么两个人交流是互相不理解的,此时就需要翻译官小叶把小李说的中文(C语言)翻译为英文(机器语言),然后小王就能理解小李说的话了。
当然,把C语言编译为机器语言的过程(GCC编译)是很复杂的,有兴趣的可以自行了解。
C语言的优点用处
C语言优点
• 执行速度快
• 可以直接访问内存
• 模块化,易于扩展
• 占用内存少
• 静态类型
• 中级语言
• 可移植性
• 通用语言
C语言的用途:
• 编写操作系统(C语言接近底层并且高效,被用来编写操作系统比如:Windows、Unix、Linux)
• 编译器开发(C语言常用于开发其它编程语言的编译器,因为C语言具有低级语言的特性,可以直接访问机器硬件。使用C语言开发的编译器有 Clang C、Bloodshed Dev-C、Apple C 和 MINGW 等。)
• 嵌入式系统的开发(C语言是开发嵌入式系统应用程序和驱动程序的最佳选择,因为它能够直接操作机器硬件)
• 对执行效率要求较高的软件模块(例如,机械设计领域的各种 CAM 和 CAD 都在使用C语言编写某些关键模块)
• ……
以下是十月份最新的编程语言使用流行度以及近三十年以来各种语言的排名(图片摘自互联网)