前言
因工作需要,特书写一套简单易入门的C语言基础教程,供大家使用。但是,注意下:该教程最适合程序小白食用,如果已经有良好C语言基础的童鞋可以移步其他教程啦~
另外,该教程主要讲解C语言的语法结构,不涉及具体编译器的安装和其他理论知识,大家遇到不懂的或者有错误等可以进行留言,万分感谢。
如果想要进行编译运行,可以下载编辑器进行本地进行编辑→编译→运行即可。编译器有:Visual Studio 2015/2017、Dev C++、Code ::Blocks、Turbo C 2.0等。如果嫌麻烦,可以直接搜索C语言在线编译工具(如: tech.io/snippet、rextester.com、www.ideone.com、菜鸟工具)进行编辑后运行。
接下来,咱们进入到正式的课程学习中。
首先来看一个最基本的C语言程序。
第一个程序:hello World

大家先自行录入一下上面的代码,能不能运行出来呢??
如果可以,那么恭喜,如果不可以,请检查下自己输入的符号、单词有没有错误,切记:C语言中的符号绝大多数都是英文格式的,如果输成中文格式的符号,将不识别,会报错。
检查好符号、单词拼写后,再看下能不能执行呢?
相信大家的程序都可以执行了,但是是不是不太明白,那我们来逐句解读一下并理解下。遇到不太懂的词,可以先跳过,不用太过纠结,随着后续学习的深入,会慢慢加深自己的理解和扩充知识体系的。
include
第1句,这是预处理器指令,预处理器指令指导编译器在实际编译开始之前对信息进行预处理。所有的预处理器指令都是以 # 开始。预处理器指令不是语句,所以它们不以分号(;)结束。
这句话的作用为让编译器在此程序中包含指定的头文件。目前这条语句用到的是<stdio.h> 文件,其余还有< math>(定义数学函数)、<string.h >(字符串处理)、<time.h>(定义关于时间的函数)等等,目前大家只要知道要使用<stdio.h>这个就可以了,后续如果有用到其他的头文件我们再理解,学习就是一个循序渐进的过程(●´∀`●)
我们先了解一下<stdio.h>文件,是标准输入/输出库(Standard Input and Output)。在这个库中,已经包含了一些函数供我们使用,不用再自己进行编写。像下面使用到的printf函数就是包含在这个< stdio.h >这个库中,大家可以试试,如果不写第一句,则会在编译的时候可能会出现如下的语句:
warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
warning: incompatible implicit declaration of built-in function 'printf'
如果后续大家发现有类似的报错,可以从是否书写了头文件、函数名是否拼写有误、对应的函数是否包含在头文件中来进行排查。
#include 这个语句的位置可以放在程序的任何一个位置,但是通常都写在程序的第一句开头的位置。故之后大家写程序也要习惯性先写“ #include ”,然后再写下面的编码部分。
main函数
下面的第2、3、6、7句的形式基本是固定的,所有的执行代码写在3、6之间,即:1
2
3
4
5
6
7int main()
{
/*
其他代码
*/
return 0;
}
在现阶段的学习中,大家可以先直接引用这种固定句式即可。也就是在录入时直接录入这么一段,然后再在中间进行填写其他代码即可。
稍微解释一下:这是一个main函数,所有的程序都必须要有的一个函数,表示程序执行的入口。所以,这个函数千万不能写错哦!
int main()叫做函数声明语句,main函数的“{ }”不可以省略,在大括号中间部分表示函数体,在{}中间的执行语句都带有分号结尾。
int 是函数返回值的类型。就相当于在数学中,f()就是一个函数,其会对应一个结果,这个结果就是函数的返回值,其返回的数据类型有的是整数,有的是小数等。而在C语言中,函数也会有返回值,这里用到的int就是整型数据,和下面第6句的“return 0;”语句是对应的,return就表示返回的是什么值,目前这里写的是0,即返回值是0。
那么,就有人会想,如果这个函数没有返回值呢?应该怎么表示??
在C语言中,就有这样一个void来表示空数据,即不返回任何内容。那上面的代码该怎么写呢?
如下:
1 | void main() |
如果函数返回值是void的话,则“return 0;”这个语句也可以不写啦~
讲到这里,如果大家知道字符数据类型写法是“char”,那么在上述代码哪些位置需要修改呢?应该改成什么?
点击展开查看结果
char main()
{
/*
其他代码
*/
return 字符数据;
}
还有一点值得说一下,main()的括号里面也可以填内容,如: main(void) 、 main(int argc, char *argv[]) 这两种都比较常见,对于小白,目前知道这也是main()函数即可。
注释语句
什么是注释呢?添加注释对程序不起实质性作用,起到提示的作用,删除注释对文档也没有任何的影响。但是,为什么会添加注释呢?这是因为人的想法是变化的,今天写下的程序也许明天就不知道为什么要这些写,甚至连里面变量的含义都有可能忘记了。而且大多数时候,我们的代码还不仅限于自己看,还有其他人看,因此要想代码具有可读性,大家都可以看懂,还是要添加必要的注释哦!
接下来,就来了解下C语言的注释语句。
第4句 /* 我的第一个 C 程序*/ 这是一个注释语句。同时 /* XXXX */ 这种类型还支持将注释多行书写。如下:
1 | int main() |
那么,如果只是将语句后面添加一些小的注释怎么写呢?这就用到了单行注释 //。使用方式如下:
1 |
|
printf语句
printf是打印语句或者叫输出语句。printf(“Hello, World!”);是打印出“hello,world”这个语句,那如果要输出其他语句呢?只需要将“ ”这个双引号里面的文本更换就可以了。例如:printf(“大家好!”);、printf(“Nolimited Study”);、printf(“一起学C语言”);等。
那大家思考下下面代码执行后的结果是什么呢?
1 |
|
大家是不是觉得应该是每行输出对应的语句呢??
然后实际结果却是如下所示:

这是为什么?因为我们没有告诉计算机需要分行输出,所以所有的输出都在一行了。
那么,怎样能够控制分行输出呢?其实很简单,每个输出里面加上\n就可以了。我们再来试验一下:

现在就完全没有问题啦!
所以,我们就可以用\n进行分行输出。而\n是转义符,表示换行,将当前位置移到下一行开头。
总结
然后看下本次的小结:
- include
是预处理命令,stdio.h是标准输入输出头文件 - main-主函数名, int-函数类型,是程序的入口,必不可少的函数
- { }是函数开始和结束的标志,不可省
- 每个C语句以分号结束
- 使用标准库函数时应在程序开头一行写: #include
函数调用语句 - //是单行注释,/ ……/是多行注释
- printf函数的功能是将输出的内容送到显示器去,即输出函数
- printf函数是一个由系统定义的标准函数,可在程序中直接调用,如果要进行分行输出,增加转义符
好啦,第一节关于C语言基本结构介绍就到这里,欢迎大家提出改进意见~