第一章 C语言概述
1.1 C语言的发展史
1.1.1程序语言简述
1、机器语言
低级语言,又称二进制代码语言。一种使用0、1表示的二进制代码编写指令以执行计算机操作的语言。
特点:计算机可以直接识别,不需要进行任何翻译。
2、汇编语言
为了减轻开发者使用二进制代码编程的痛苦,用英文字母或符号串来代替机器语言的二进制码,于是把机器语言变成了汇编语言。
缺点:依赖于计算机硬件,程序的可读性和可移植性都不是很好。
3、高级语言
由于汇编语言依赖于硬件体系,并且助记符号数量比较多,因此,产生了高级语言。常见高级语言:C、C++、Java等。
1.1.2 C语言的历史
C语言是一种面向过程的语言,同时具有高级语言和汇编语言的特点,C语言可以应用于不同的操作系统:Linux、Windows稍等
C语言在BCPL语言(B语言)的基础上发展和完善的,运行在AT&T的多用户、多任务的UNIX操作系统上。
B语言的创造者:丹尼斯·里奇和肯·汤普逊,11970年研制。
C语言创造者:丹尼斯·里奇,20世纪70年代初期。
1.2 C语言的特点
1、高效性
代码运行效率高,且具有良好的可读性和编写性。
2、灵活性
3、功能丰富性
4、表达力强
结构规范。
5、移植性好
在不同的操作系统下,只需要简单地修改甚至不用修改,即可进行跨平台的程序开发操作。
1.3 一个简单的C程序
分析:
1、第一行
一个编译预处理命令,声明了在程序编译之前要预先处理的内容。
作用:声明本段代码已包含标准输入/输出库函数stdio,后续可直接调用,不需要用户再进行定义。
其中,include称为文件包含命令,尖括号中的内容称为头文件或首文件。
2、第三行
作用:声明main函数有一个int整型返回值。
函数中,这一部分称为函数头部份。
3、第4~7行
大括号以及其中的语句块构成了函数体。
其中,printf格式化输出函数,字符串的输出操作,包含在标准输入/输出库文件stdio中。前面做了包含声明,这里可以直接调用。
第六行,使main函数终止运行,并向操作系统返回一个整型常量0。0就是要返回的整型值。可以将return语句理解成main函数的结束标志。
一个函数通常分为函数头和函数体两部分。
\n,转义字符,作用是换行。
4、注释
// 单行注释
/* 多行注释 */
1.4 一个完整的C程序
情景:计算长方形的体积
某长方体,某高已经给出,为10。要求从控制台输入长方体的长和宽,通过输入的长、宽以及给定的高度,计算出长方体的体积。
cpp
#include<stdio.h>
#define Height 10
int calculate(int Long, int Width);
int main()
{
int m_Long;
int m_Width;
int result;
printf("长方形的高度为:%d\n",Height);
printf("请输入长度\n");
scanf("%d",&m_Long);
printf("请输入宽度\n");
scanf("%d",&m_Width);
result= calculate(m_Long,m_Width);
printf("长方体的体积是:");
printf("%d\n",result);
return 0;
}
int calculate(int Long,int Width)
{
int result=Long*Width*Height;
return result;
}
分析
1、#define Height 10
使用**#define定义一个符号常量**。设定用符号Height代表数值10。在成功徐编译时,只要遇见Height标识符,就会被替换为数值10。满足高已给条件。
2、int calculate(int Long,int Width);
作用是对Calculate函数进行声明。在此处声明calculate函数,表示后面将给出calculate函数的具体定义内容。
3、int m_Long;
定义变量。变量的作用就是存储数值,使得计算机可利用变量进行计算。
4、scanf("%d",&m_Long);
scanf函数用来接收键盘输入的内容,并将输入的内容保存在相应变量中。在scanf函数的参数中,m_Long是之前定义的整型变量,作用是存储输入的信息内容;&符号是取地址运算符。
5、calculate函数
cpp
int calculate(int Long,int Width)
{
int result=Long*Width*Height;
return result;
}
calcul函数是用户根据需要自行定义的函数,必须给出具体的函数体。
流程
1.5 C语言程序的格式
C程序都是从main函数开始执行的,即main函数无论放在什么位置都没有关系。
若将所有程序代码全部放入main函数中,整个程序的可读性和扩展性将会变得很差。