开发者学堂课程【你的第一门 C 语言课:第一个程序】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/444/detail/5452
第一个程序
目录:
一、C 语言被淘汰了吗
二、编程是做什么的
三、机器码
四、汇编语言
五、C 语言
六、使用 C 语言编程
七、C 语言的优势
八、第一个程序
一、C 语言被淘汰了吗
在讲解第一个程序之前,先普及一些相关的概念。第一个问题 C 语言被淘汰了吗?
或许在此之前还没有学习 C 语言之前,但肯定听说过它。对于其他编程语言来说 C语言的确是一个老古董。但正如老古董一样 C 语言越老越值钱。
相关编程语言排行榜可以看到 C 语言一直在第一名和第二名徘徊,并且呈现一个上升的趋势。C 语言为何如此坚挺呢?下面就行讲解。
二、编程是做什么的
下面从一个大的角度来讲,编程语言是干什么的,为什么要学习编程语言。
一言引喻之:编程语言是人类跟机器打交道的枢纽,它充当人类的翻译官。具体是怎么回事呢?
举个例子,莫斯密码和莫斯密码表的关系,其实莫斯密码的原理非常简单,就是查表,加密为编码,解密为译码
三、机器码
CPU 是计算机的大脑,它虽然很快但并不聪明。它只懂得二进制的0和1。如果直接对它下命令,那是在对牛弹琴。然而通过编程语言,就可以通过计算机处理翻译到CPU 懂得的指令。
就如同之前讲到的莫斯密码,CPU 查找相关指令表进行翻译。0 1的组合叫做机器码也叫机器语言。
也是第一代编程语言,是可以被 CPU 直接读懂的编程语言。如果用机器语言输出hello world! 将要用这么多行机器语言代码,这也只是一部分:
四、汇编语言
是第二代编程语言,在汇编语言中引入的大量的助记符,来帮助人们编程,然后汇编编译器将这些助记符转化为机器码,这个转化的过程称为编译,发现这样编程,容易了许多,但下面的代码只是在屏幕上打印 hello world,代码依旧很多。下面是汇编语言的实例代码:
五、C语言
有需求就有市场,就有研发的动力然后以 C 语言为代表的第三代编程语言很快就被开发出来了。
第三代编程语言也称为高级语言。之前两代都是低级语言。像 C++,C#,JAVA 等都是高级语言。C 语言出入 hello world 只用了6行代码。汇编语言用了20行,而机器语言用了上百行,所以无论是从开发效率,还是代码的可读性来说C语言都有这极大的优势。
六、使用 C 语言编程
使用 C 语言来进行编程,编译器会将 C 语言编译成汇编语言,再编译成机器语言,最后由机器读取执行指令,显示 hello world 。学习一门编程语言,应该知道它有什么优势,常说的 C 语言优势是效率高,可移植性高,灵活性高。
七、C语言编程的优势:
效率高
效率高是针对其他第三代语言说的,V 语言是一个编译性语言,源代码最终被编译成机器代码,也就是所说的可执行文件。还有另外一个流行语言叫做解释型语言。
像 JAVA Python 之类都是解释型语言。解释型语言不直接编译成机器码而是讲源代码转化为中间代码。解释型语言效率要低一些,编译型语言和解释型语言区别:
灵活度高
第二个灵活度高,这是没有几个编程,能和 C 语言媲美的。C语言不仅提供了多种运算符还可以,还可以完成类似于计算机底层的位操作,语法简单,约束又少。
丰富多变的结构和数据还可以自定义一些数据类型,它拥有直接操纵计算机硬件的能力。当学到指针这一节会深有体会。指针可以说是 C 语言的灵魂。C 语言有多灵活多强大完全取决于对指针知识点的掌握程度。
可移植性高
可移植性高指的是源代码不需要改动或者只需要稍加修改就可以在其他机器上编译执行,有统计资料表明,对于单片机来说不同机器上 C 语言编译程序80%的代码都是相同的。像 Windows 等系统的底层或多或少都是由 C 语言写的。
八、第一个程序
实现打印 hello world,跟着下面的代码写执行不报错即可。演示编程代码主要在Linux环境下进行。编程环境的搭建,可在鱼C的网站上获得。#include
int main( )
{
printf("Hello world!\n");
return 0;
}
下面在 Linux 演示,mkdir 创建一个文件夹。mkdir FishC
cd FishC
mkdir sle 2
cd sle2
vi test.c
//创建一个 C 语言的源文件,创建好文件,抄写上面的代码。
gcc text.c -o text.c
ls
./text
//执行这个C语言程序
//在 Mac 环境下需要先通过 Xcode 安装 GCC 编译器。
//在 Windows 推荐这两款编译器:Dev-C++和Code::Blocks
//在 Dev-C++编译器中需要保存为 C source files 文件
//在 Code::Block 需要先创建一个 Console application 程序