目录
初识C语言
什么是计算机程序
所谓程序就是一组计算机能够识别并执行的指令,每一条指令使计算机执行特定的操作
什么是计算机语言
人与人之间的交流需要语言,比如汉语,英语,所以人与计算机之间交流信息也需要解决语言问题,这种语言需要人和计算机都能够读懂,这就是计算机语言,计算机语言发几个发展阶段
低级语言(面向机器)
机器语言
计算机工作是基于二进制,从根本上来说,计算机硬件只能识别电压,所以正电表示1,负电表示0,故计算机只能接收由0和1组成的指令,这种计算机能够直接识别和接受的二进制码称为机器指令,机器指令的集合就是计算机的机器语言
汇编语言
为了克服上面机器语言的难学,难记,难检查的缺点,推出了符号语言用一些英文字母和数字表示指令,比如ADD表示加,显然计算机是不能去直接识别这些符号语言的,需要汇编程序来实现对符号语言转换为机器语言,这个过程叫做代真或者汇编,所以又称其符号语言为汇编语言
缺点 这两种语言与人们思考问题和描述问题的方法相距太远,使用反锁,易出差错,要求使用者熟悉计算机内的细节,非专业的普通用户很难对它维护。而且不同型号的计算机机器语言和汇编语言并不互通。
优点 这两种语言贴近计算机硬件,所以效率高。
高级语言(面对人类)
为了方便人们去学习,设计出高级语言,它接近人们习惯使用的自然语言和数学语言,程序中的语句和指令用英文单词来编写,程序中用的运算符和运算表达式与人们日常使用的数学式子差不多,它离计算机较远,所以称为高级语言
当然计算机也不能直接去识别高级语言程序的,也要进行翻译,用一种叫做编译程序的软件把高级语言写的程序(源程序)转换为机器指令的程序(目标程序),然后让计算机执行机器指令程序。
高级语言的3个发展阶段
非结构化阶段 编程风格比较随意,只要符合语法就行,没有严格的规范要求,程序的流程可以随意跳转,使程序十分难以阅读和维护,如ALGOL等
结构化阶段 规定程序必须由良好的特性基本结构(顺序结构,选择结构,循环结构)构成,程序的流程不允许随意跳转,程序总是由上至下执行各个基本结构,c语言属于结构化语言
面向对象阶段 以上两种语言它们注重程序编写每一个过程的细节,在编写小型程序时得心应手,但是处理较大程序时就不行了,所以提出面对对象的语言,对象是由数据以及对数据进行的操作组成的。如C++,JAVA
C语言是一门高级语言
C语言是结构化的程序设计语言
1顺序结构
2选择结构
3循环结构
第一个C语言程序
源程序文件的结构
一个程序由一个或者多个源程序文件组成的 一个源文件包括三个部分 预处理指令 全局声明 函数定义
预处理指令
如#include<stdio.h>(#define等)都称为预处理指令,c语言编译系统在对源程序进行翻译之前,由一个预处理器对预处理指令进行预处理,对于#include<stdio.h>,就是将stdio.h头文件的内容读进来,代替#include<stdio.h>,由预处理得到的结果与程序其他部分一起组成一个完整的可以用来编译的源程序,然后由编译程序对源程序正式编译,才得到目标程序
stdio.h .h表示的意思表示头文件 std是standard i是input o是output,这个头文件就是把输入输出的相关信息先事先放在stdio.h这个文件中
全局声明
即在函数之外的数据声明,比如这个global就是一个全局变量,这种声明方式就是全局声明,如果是在函数内部声明就是局部变量,只是在函数范围内有效
全局变量
局部变量
函数定义
函数是C程序的主要组成部分,一个函数分为两个部分,函数首部和函数体
函数首部
即函数的第一行,先不深入,拿int main ()为例子 int 是函数类型,是表示函数会返回什么值,main 表示的是函数名 int mian()也可以写成int main(void),但是后面这种不常用
函数体
就是函数首部下面花括号的部分,如果一个函数有多层花括号,则最外层的一对是函数体的范围
拿int main()函数举例子
int 表示是整形的意思,表示函数调用返回的数据类型是整形 main表示函数名
main 函数比较特殊,程序的执行总是从main函数开始执行的,而且一个程序中有且只有一个main函数,也可以说这个主函数就是C语言中的唯一入口。
而函数 printf全程是print function 打印函数 ,这是一种库函数,是C语言本身提供给我们的函数
一些C程序的注意点
1一个程序由一个或者多个源程序文件组成
2函数是C程序的主要组成部分
3程序从是从main开始执行
4程序中要求完成的操作是由函数中的C语句完成的
5每个数据声明和语句的最后必须有一个分号
int a; int b; int c; c=a+b;
6C语言本身不提供输入输出语句,输入输出语句是由库函数scanf和printf完成的
7程序中应该含有注释
为了使程序有更好的可读性
两种注释方式
以//开始的单行注释
此种注释的范围是从//开始,以换行符结束的,也就是说这种注释不能跨行
以/*开始以*/结束,可以包含多行数据 不能进行嵌套注释
C程序的运行步骤
我们在电脑上编写的程序是源程序,计算机不能直接识别,需要用编译软件去编译成二进制的目标程序,然后再将目标程序与库函数以及其他目标程序连接起来,形成可执行的目标程序