1、C的历史
C语言是一种高级程序语言,可以实现对硬件直接操作,例如如内存地址的操作、对位的操作。UNIX5操作系统90%以上都是C语言编写(从B语言改写)的。
C语言可以实现汇编语言的大部分功能。C既具有高级语言特性,又具有低级语言的许多功能,可以用来写系统软件。
2、C语言特点
2.1 语言简单、紧凑、使用简单、灵活
C语言有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示。
2.2 运算符丰富
C语言有34中运算符,C把括号、赋值、强制类型转化等都作为运算符处理,使得C的运算符类型及其丰富。
2.2 数据结构丰富
C的数据类型有整形、实型、字符型、数组类型、指针类型、共用体类型等
以上数据类型可以实现各种复杂的数据结构(如链表、树、栈等)的运算
2.3 具有结构化的控制语句
C的控制语句包括(if...else...语句)、(while语句)、(switch语句)、(for语句)等,用函数作为程序的模块单位,便于实现程序的模块化。
2.4 C语言可以进行位(bit)操作
所以,能够实现汇编语言的大部分功能,可以直接对硬件进行操作。
2.5 程序执行效率高,生成目标代码质量高
一般只比汇编生成的目标代码效率低10%~20%
2.6 可移植性好(与汇编语言比)
基本上不做任何修改就鞥用于各种型号的计算机和操作系统。
2.7 C书写格式自由
一行内可以写几个语句,
一个语句可以写在多行上
3. 例子
3.1 例1 简单输出
# include main() /*主函数*/
{
printf("This is a C Program.\n"); /*这是C的输出格式与注释格式*/
}
上述代码是一个简单的C程序,输出内容:
This is a C Program.
3.2 例2 求两数之和
# include main()
{
int a,b,sum; /*这是定义变量*/
a=123;b=456;
sum = a+b ; /*可以直接用内置函数sum=add(a,b)*/
printf(“sum is %d\n”,sum); /*格式化输出*/
}
3.3 例3 求两数最大
# include main()
{
int a,b,c;
scanf("%d,%d",&a,&b) ; /*输入变量a,b,类比于python的raw_input*,“&”的含义是“取地址”/
c=max(a,b); /*调用max函数,将得到的值赋值给c*/
printf("max=%d",c);
}
int max(int x,int y) /*定义max函数(注意定义函数类型),函数值为整型,形式参数x,y为整型*/
{
int z; /*max函数中的声明部分,定义函数中用到的变量z为整型*/
if (x>y) z=x;
else z=y;
return (z); /*将z的值返回给c*/
}
注意:
1、C的每个语句和数据定义后的最后必须有一个分号。分号不可少
2、C语言本身没有输入输出语句,它的输入输出操作石油库函数scanf和pringtf等完成的。
3、C语言可以使用 /...../来进行注释
4. C的编译
1、因为计算机只能够识别0、1组成的二进制指令,而不能识别和执行有0和1组成的二进制指令。
所以,为了使得计算机能够执行高级语言程序,需要一种称为“编译软件”的软件,把源程序翻译成二进制形式的“目标程序”,然后将该“目标程序”与系统的函数库和其它目标程序连接起来,形成可执行的目标程序。
2. C语言的源程序文件是 name.c文件
例如:编辑后的得到一个源程序文件f.c,进行编译时将源程序文件f.c输入,经过编译得到目标程序文件f.obj,再讲目标程序语言f.obj输入内存,与系统提供的库函数等连接,得到可执行的目标程序文件f.exe,最后把f.exe调入内存并使之运行。