如何学习
C语言的重要性
C语言是所有高级语言的前辈,C++,C#,Java ,都是由C语言演变过来的,包括现在很火的python,第一个Python编译器诞生,它是用C语言实现的。
所有大学理科专业的必修课程都是C语言,就算你将来不从事开发, 期末考试总不能挂科吧,除了C语言,小林不知道还有哪一门课这么普及。
我们常用的操作系统windows、linux、unix是C语言开发的,如果你想当黑客必须学C语言,你去黑别人电脑的是不是绕不操作系统。
如果你想入职阿里、腾讯这样的大厂,必须学C语言,为什么呢?
因为大厂都要考算法,比如我要你实现二叉树,你总不能用Java来实现吧,况且进大厂你的基础要扎实吧,操作系统,数据结构是不是要学一下,哎,又绕回C语言了。
C语言应用领域
- 操作系统:windows、linux、unix
- 数据库:Oracle和sql server
- 一些驱动程序
- wps、photoshop
- 嵌入式开发
C语言特点
- C语言简洁,灵活,有37个关键字,9种控制语句。
- C语言数据类型极其丰富。
- C语言程序执行效率很高,可以直接操作内存。
C语言学习目标
- 掌握C语言的语法规则,数组、循环、函数、指针等。
- 要学会一些算法,比如冒泡排序、快速排序、递归等。
- 在学习的过程中理解什么是面向过程,为将来学习C++、Java等面向对象语言做准备。
如何学习
C语言开发工具介绍
VC6.0:微软的一款C语言/C++编译器,可以将高级语言翻译为机器语言的程序,Visual C++6.0是一个功能强大的可视化软件开发工具,1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具,1998年推出VC6.0,截至到今天已经23年没有更新迭代了,因此小林不建议使用这个开发工具,太老了,跟不上时代的潮流。
Dev-C++:Windows 环境下的一个轻量级 C语言/C++ 集成开发环境(IDE),遵守GPL许可协议分发源代码。它集合了功能强大的源码编辑器、MingW64/TDM-GCC 编译器、GDB 调试器和 AStyle 格式整理器等众多自由软件,小林个人是十分推荐初学者使用这个开发工具的,操作十分便捷。
VS2019:VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,Visual Studio是最流行的Windows平台应用程序的集成开发环境,1995年,微软发布了 Visual Studio 初版,最新版本为 Visual Studio 2019 版本,这个开发工具我不建议初学者使用,因为操作较为复杂,没有编程基础的,看着这个开发功能会很懵逼。
上述三个开发工具,下载地址「推荐收藏 | 开发工具」,关于如何使用请看文末,小林录制了视频教程,专门讲解这三个开发工具的使用。
如何学习C语言
- 掌握基础知识,为将来进一步学习打下良好的基础。
- 上机实践,通过大量的例题学习怎么设计算法,培养解题思路。
- 养成良好的编码习惯,注释一定要写,要不然保你一周后自己写的代码都不认识了。
C语言的结构
一个程序由一个或者多个源程序文件组成,一个规模较小的程序,往往只包括一个源程序文件,一个源程序文件包括3部分:
- 预处理指令,由预处理得到的结果与程序其他部分一起,组成一个完整的、可以用来编译的最后的源程序,然后由编译程序对该源程序正式进行编译,才得到目标程序。
- 全局声明,即在函数之外进行的数据声明。
- 函数定义,自己定义的函数。
函数是C程序的主要部分
- 程序的几乎全部工作都是由各个函数分别完成的,函数是C程序的基本单位,在设计良好的程序中,每个函数都用来实现一个或几个特点的功能。
一个函数包括两部分
- 函数首部,即函数的第一行,包括函数名、函数类型、函数属性、函数参数、参数类型。
- 函数体,包括声明部分和执行部分
函数总是从main函数开始的
- 不管main函数在整个程序中的位置如何,main函数可以放在程序的开头,也可以放在程序的结尾,或在一些函数之前,另一些函数之后。
程序中对计算机的操作是由函数中的C语句完成的
- 如赋值,输入输出数据的操作都是由相应的C语句实现。
在每个数据声明 和语句的最后必须有一个分号
- 分号是C语句的必要组成部分。
C语言本身不提供输入输出语句
- 输入和输出的操作是由库函数scanf和printf函数来完成。
程序应当包含注释
- 一个好的、有使用价值的源程序都应当加上必要的注释,增加程序的可读性。
为什么写这三行代码
C语言实现Hello xiaolin
#include<stdio.h>//头文件
int main()//主函数 程序的入口
{
printf("Hello xiaolin!\n");// \n是换行的意思
return 0;
}
编译运行结果:
为什么写#include
#include
在上述程序里编译预处理命令称为文件包含命令,作用是在编译之前把程序需要使用的关于系统定义的函数printf()的一些信息文件stdio.h包含进来。
stdio.h是C语言编译系统提供的一个文件名,stdio是“standard input & output”的缩写,即有关标准输入输出的信息。
在上一节小林讲过C语言本身不提供输入输出函数,如果想用printf输出函数怎么办呢?
include的作用就是用来提供printf和scanf这些信息的。
如果不加#include
如果也去掉printf则会编译通过:
不加头文件是没有意义的,小林是为了给大家做演示才不加的,别学我。
为什么写main
main函数是程序的入口,举个例子,main函数就相当于你家房子的大门,你要回家是不是要通过大门,同理到C语言就容易理解了。
C语言程序总是从main函数开始执行的,如果main函数中有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序。
return语句的作用
一句话总结:将结果返回到函数调用处。
return 0的意思是程序运行到这里,就不往后运行了,程序结束了,这行代码可以省略。
运行C语言程序步骤
上机输入和编译源代码
- 通过键盘向计算机输入程序,如发现有错误,要及时改正。最后将此源程序以文件形式存放在自己指定的文件夹内,文件用.c作为后缀。
对源程序进行编译
- 先用C编译系统提供的“预处理器”对程序 中的预处理指令进行编译预处理。在用编译系统对源程序进行编译时,自动包括了预编译和正式编译两个阶段,一气呵成。
进行连接处理
- 经过编译所得到的二进制目标文件还不能供计算机直接使用,必须把所有的编译后得到的目标模块连接装配起来,再与库函数形成一个整体,生成可执行程序。
运行可执行程序
- 一个程序从编写到运行成功,并不是一次成功的,往往要经过多次反复。而且即使是编写好的程序也并不一定能保证正确无误。