likes
comments
collection
share

不如开始学C语言(第一天) 适合小白和大学生

作者站长头像
站长
· 阅读数 12

不如开始学C语言(第一天) 适合小白和大学生

为什么要学C语言

对于大学生来说当然是为了不挂科,毕竟计科专业的第一学期就可能要学C语言了.对于小白来说可能你是业务需要,也有可能是兴趣爱好或者其他吧

C的起源和发展

想要了解C不如先了解它的起源和历史

不如开始学C语言(第一天) 适合小白和大学生

第一代语言

机器语言一款只有0/1代码的语言,有了它,再也不用担心你的代码不够多,不够长,分分钟让惊艳同学或朋友. 机器语言让你的"hello world"也能用掉一堆纸.

第二代语言

汇编语言,早期的封装,将常见的机器语言进行封装,汇编语言就直接将常见且固定的0/1整合起来,例如做加法,我就做加法的机器语言封装成一个单词add,只要我们使用add这个关键字,底层将自动解析成对应的机器语言.

第三代语言

汇编语言之后又出现了第三代语言。第三代语言又叫"高级语言"。

高级语言的发展分为两个阶段,以1980年为分界线,前一阶段属于结构化语言或者称为面向过程的语言,后一阶段属于面向对象的语言。

什么叫面向过程,什么叫面向对象?这是很难解释的一个问题,所以这个问题大家现在先不要考虑。等到将来你们学完C语言、C++、Java或者C#之后才有可能理解。因为这个需要比较。总之,面向过程语言中最经典、最重要的就是C语言。Fortran、Basic和Pascal语言基本上已经很少有人使用了。但是C语言一直在用,因为C语言是计算机领域最重要的一门语言。但是C语言也有缺陷,它的缺陷只有在学完面向对象语言之后才能体会到。所以从20世纪80年代开始又产生了另外一种“以面向对象”为思想的语言,其中最重要、最复杂的就是C++。C++从易用性和安全性两个方面对C语言进行了升级。C++是一种较复杂、难学的语言,但是一旦学会了则非常有用。

因为C++太复杂,所以后来就对C++进行了改装,产生了两种语言,一个是Java,另一个是C#。Java语言是现在最流行的语言之一。C#则是微软公司看Java很流行而写的一个与Java语法相似的语言.

速度

这个确实很好去判断,机器必然是最快,汇编第二,毕竟汇编的底层要解析成机器语言,多了一步必然慢一点,同理,java底层要解析成c++在转汇编在转机器.所以c和c++必然比java,c#,go都要快

c的演变

这个我就不多说了,网上肯定都有,不过还是有一个挺意外的东西就是,linux是用c语言写出来的

应用场景

系统软件开发

1)操作系统:UNIX、Windows、Linux。

2)驱动程序:比如主板驱动、显卡驱动、摄像头驱动。驱动一般是用C语言和汇编语言写的,C++在这方面稍弱。

3)数据库:SQL Server、Oracle、MySQL、DB2。

应用软件开发

1)办公软件:WPS。

2)图形图像多媒体:Photoshop、Mediaplayer。

3)嵌入式软件开发:嵌入式软件开发说得简单点就是芯片编程,比如我们以后学习在单片机和ARM上进行的开发都属于嵌入式软件开发。

4)游戏开发:2D、3D游戏。CS整个游戏的引擎全部是用纯C写的。

编写你的第一个hello world

安装devcpp

为什么要用devcpp,主要是因为vs的话对于小白来说文件比较大而且比较麻烦,devcpp相对轻量级,适合于小白开发,在后期在使用vs更好 DevC++官方下载 下载完后一直点击下一步即可

第一个程序

随便在一个目录下创建hello.c文件

#include<stdio.h>

int main(){
	printf("hello world\n");
	return 0;
}

不如开始学C语言(第一天) 适合小白和大学生

点击如下,查看编译是否通过

不如开始学C语言(第一天) 适合小白和大学生

不如开始学C语言(第一天) 适合小白和大学生

我们可以看到没有任何问题,直接按住F10运行程序

不如开始学C语言(第一天) 适合小白和大学生

这样一个简单的hello wolrd就实现了

代码解析

# include <stdio.h>

在C语言中,凡是以"#" 开头的都叫预处理指令。所谓“预”即“提前、先”的意思。所以“预处理”就是“提前处理”或者“先处理”的意思。如果你想运行某些程序则必须要操作系统下达命令,那么操作系统是怎么下命令的呢?首先要看VC++将这些功能藏哪了。对于后面写的大多数程序需要的功能,VC++都将它们藏在了stdio.h这个文件中。.h是这个文件的后缀名。那么怎么命令VC++将这个文件给“交”出来呢?就是通过include命令。这是一个英文单词,是“包含”的意思,大家应该都认识。在include后面加上stdio.h这个文件,就表示将这个文件包含进来。为了将include和stdio.h区分开,它们之间必须要加空格,并且用“<>”将stdio.h括起来。

int main()

我们先来看main。main是这个函数的名字,这个名字是固定的,不可以改成其他名字。main也是一个英文单词,意思是主要的,所以这个函数又叫主函数。

任何一个程序中都有且只有一个主函数main。所有程序在执行时都开始于主函数main,也都结束于主函数main。主函数main执行完后要返回一个值。int就是返回的这个值的类型。它是英文单词integer的缩写,integer是"整数"的意思,所以int就表示整型。main后面有一个括号,这个括号中放的是要传给主函数main的参数。而我们一般都不会给main函数传参数,所以里面就写"void"。

这两个大括号是一对,漏掉一个都不行。所以在编程的时候,无论是输入小括号"()",还是输入大括号"{}",都要成对地输入,然后再在它们中间写代码,这样就不会漏掉了。main下面的两个大括号括起来的部分叫"函数体",表示其间代码都属于main。

printf("hello world")

这个就是c语言专用的打印,也就是将hello world 打印到控制台中

return 0;

我们前面说主函数main有一个返回值,这个返回值的类型为int型。那么这个返回值到底是什么呢?就是这个0。return也是一个英文单词,是"返回"的意思。return 0; 即表示将0返回给主函数main。 那么这句到底有什么用处呢?为什么要将0返回给main呢?这是为了告诉main程序执行完了。main函数收到一个“0”之后就知道程序结束了,不用再往下执行了。

那么大家观察一下这一句同前面两句有什么不一样呢?最后多了一个分号。分号是C语言中非常重要的一个标记。分号有什么作用呢?在C语言中,加了分号的才是一条语句,语句是以分号结尾的。但是在C语言中并不只是语句,比如前面两句就不是语句,所以它们后面就没有分号。这一点一定要注意。