从零开始学编程之C语言(2)——简单C语言程序
1. 计算机中的程序
1.1 程序
程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合
程序,就是计算机的语言和人的语言的翻译者,做一个程序员就是要把人类世界的问题用计算机的方法去解决和展现。
1.2 算法
算法:做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤,就称为算法。
算法,就是解决问题的具体方法和步骤。算法的优劣,用空间复杂度与时间复杂度来衡量。(空间、时间复杂度先这样浅显的理解一下,空间就当是程序所占用的资源,时间就当是程序运行完毕所用的时间。同样的功能,同样的效果,占用资源越少,使用时间越少,那么程序越NB。如果有兴趣的可以自己查阅资料研究)
“程序 = 算法 + 数据结构”
简单理解一下,比如你要谱一曲小歌,那么歌曲=乐谱+八分音符,这里程序相当于一首歌,数据结构呢是由八分音符组成,然后由乐谱(算法)将他们连成一曲。
1.3 流程图
流程图是算法的一种图形化表示方式。
流程图直观、清晰,更有利于人们设计与理解算法。
它使用一组预定义的符号来说明如何执行特定任务。
一般情况下,这是产品给的需求文档有吧,最多自己屡屡逻辑问题,反正我从来没用过,可能我不是一个合格的程序员=.=,所以你们自己开发的时候可以试着用用,流程图软件推荐Visio。
1.4 案例
问题:
请计算长方形的面积。(用算法和流程图表示程序)
答案:
1.接收用户输入的长方形长度和宽度两个值;
2.判断长度和宽度的值是否大于零;
3.如果大于零,将长度和宽度两个值相乘得到面积,否则显示输入错误;
4.显示面积。
2. C语言程序
先看我们的第一个C语言程序。
#include <stdio.h>
int main()
{
printf("Hello World!\n");
}
运行之后,我们能看见屏幕上会出现Hello World!字样
2.1 预处理
// 预处理命令
#include <stdio.h> /包含头文件/ 宏定义变量定义定义输入/输出函数
在C语言中,在程序编译之前要处理的内容,以 # 开始的语句称为预处理指令。
不同的头文件包括不同的信息,提供给程序设计者使用,这样,程序设计者不需自己重复书写这些信息,只需用一行#include命令就把这些信息包含到本文件了,大大地提高了编程效率。由于有了#include命令,就把不同的文件组合在一起,形成一个文件。因此说,头文件是源文件之间的接口。
在使用标准函数库中的输入输出函数时,编译系统要求程序提供有关的信息(例如对这些输入输出函数的声明),#include<stdio.h>的作用就是用来提供这些信息的,stdio.h是C编译系统提供的一个文件名,stdio是“standard input & output”的缩写,即有关标准输入输出的信息。
在程序中用到系统提供的标准函数库中的输入输出函数时,应在程序的开头写上一行:#include"stdio.h"或者是#include<stdio.h>,这样才能调用库函数。二者主要在于查找效率上有差别,#include<stdio.h>一般用包含系统文件,它是查找先从系统目录查找开始查找;#include "stdio.h"一般用包含项目文件,它是查找先从项目目录查找开始查找。
在编写C语言中,常用到==printf()和scanf()==函数(输入输出),他们就是stdio.h中的两个标准输入输出函数,所以编程语句中如果要用到此两个函数就一定要在头文件中加入#include<stdio.h>。
2.2 main函数
int main()
{
主体
}
main() 函数是 C 程序处理的起点。 (也是终点,所有C程序都是从main开始到main结束)
int是主函数main的返回值类型。
main() 函数可以返回一个值,也可以不返回值。如果某个函数没有返回值,那么在它的前面有一个关键字 void。上面程序中返回的是int类型(整型,后面会讲到,main函数中,我们一般就像上面这样写)
在函数定义的后面有一个左大括号,即 {(表示程序从这里开始执行)
在函数定义的结尾处有一个右大括号,即 }(表示程序从这里结束执行)
另外大括号也可以用于将语句块括起来,并非在声明函数时加的大括号,使大括号内的所有语句成为程序块,在语法上可被大括号外的代码视作一条语句。
2.3 主体
printf("Hello World!\n");
main表示函数的开始,后面是函数的主体。
该语句表示,在屏幕上产生一行输出“Hello world!”,并换行(\n)
注:#include语句不是必需的,但是,如果程序有该语句(printf),就必须将它放在程序的开始处,stdio.h文件中包含了有关输入输出语句的函数。
3. C语言的编译与执行
我们都知道计算机无法识别机器语言之外的程序,C语言同样属于机器语言之外的高级语言,因此我们要通过编译器,将他们翻译成计算机可识别的语言。
步骤如下图:
总结:
其实前两章差多不都是概念的东西,了解一下就行了,能理解当然好了。下一章是编译器的下载与使用,本来想偷懒用VS的,后来想想还是下一个codeblocks吧=.=,具体步骤会贴出来,还是codeblocks对新手比较友好点,而且还能通过MinGW\bin中的gcc来展示C语言的底层编译过程,对理解C语言的编译与执行肯定是有帮助的,还有半部分的编译与执行,因此就下章见啦。
还有几句废话,如果你想学Java啊、Csharp啊、PHP啊、等等啥的,建议直接却找别的教程,我虽然也会写到,即使光是码一些基础的教程,但真指不定什么时候才能写到嘞=.=。
如有错误之处,恳请指出,谢谢。