第一章 概览
1,C语言是由贝尔实验室的Dannis Ritchie在1972年发明,来自于Thompson的B语言。C是作为从事实际编程工作的程序员的一种工具出现的。
2,使用C语言的理由
1,设计特性:融合控制特性,使得用户可以自然而然的采用自顶向下的规划,结构化的编程,以及模块化的设计。这种做法使得编写出来的程序更可靠,更易懂。
2,高效性:紧凑,运行速度快
3,可移植性:在一个系统上编写的C程序经过很少或者不经修改就可以在其他系统上运行。
4,强大的功能和灵活性:其他语言的许多编译器和解释器都是由C编写的
5,面向编程人员:允许您访问硬件,并可以操作内存中特定位。具有丰富的运算符;
缺点:C在表达方面的自由会增加风险。C的简洁性与丰富的运算符相结合可能会编写出难以理解的代码。
3,使用C语言的7个步骤
1,定义程序目标
2,设计程序
3,编写代码
4,编译
5,运行程序
6,测试和调试程序
7,维护和修改程序
4,编程机制
用C语言编写时,编写的内容保存在被称为源代码文件的文本文件中。大多数系统中,文件以.c结尾。例如gudget.c。小数点前的部分成为文件名,小点后的部分成为扩展名。
5,目标代码文件、可执行文件和库
C语言编程的基本策略是使用程序将源代码文件转换为可执行文件。此文件包含可运行的机器语言代码。步骤:编译器将源代码转换为中间代码,链接器将中间代码与其他代码相结合生成可执行文件。中间代码文件的形式有很多,最一般的是将结果放在目标代码文件简称为目标文件。目标文件还不能运行,缺少启动代码和库例程(函数)的代码。链接器的作用是将3个元素(目标代码、启动代码、库代码)结合在一起,并存放在单个文件即可执行文件中。
6,语言标准
第一版:K&R C或经典C。
第一个ANSI/ISO C标准 C89或C90标准
C99标准
第二章 C语言概述
#include<stdio.h> /*注释*/
int main()
{
int num;
num = 1;
printf(“ ab”);
printf(“ ab.\n”);
printf(“ my favourite number is %d because it is first.\n”,num);
return 0;
}
运行正常的话,其显示解过为:
ab ab
my favourite number is 1 because it is first.
一, 实例说明:
1,#include<stdio.h>
这是程序的第一行。语句的作用相当于在文件中该行的位置键入了文件stdio.h的完整内容,实际是一种剪切和粘贴操作,方便在多个程序间共享公用的信息。#include语句是C预处理命令的一个例子。预处理:C编译器在编译前对源代码做的准备工作。最重要的是头文件包括了建立最终的可执行程序编译器需要用到的信息。
2,main()函数
一个C程序总是从main()函数开始执行的。圆括号的功能:表明main()是一个函数。Main()是C程序的基本模块。
int指明了函数的返回类型。Int意味着main函数返回值的类型是整数。
函数名后面的圆括号一般包括传递给函数的信息。此例中无返回信息。
3,注释
包含在/* */中部分是程序注释。目的是使人们更容易理解程序。一个较长的注释可以单放一行,或者多行/* */间的内容都会被编译器忽略掉。C99增加了另一种风格的注释,
// 这种注释必须被限制在一行内。
4,花括号,程序体和代码块。
{
}
花括号划定了main()的界限。C函数都是有花括号来表示函数体的开始和结束。
花括号还可以用来把函数中的语句聚集到一个单元或者代码块中。
5,声明
int num;
声明语句是c语言中最重要的功能之一。此例声明了函数中有一个int类型的num变量。
标识符:为变量、函数和其他实体所选的名字。
数据类型:C语言可以出来多个数据种类,例如整数,字符。
6,赋值
num =1;这个例子的意思是“把值1赋给变量num”。语句在计算机内存中为变量分配了空间,该赋值语句在那个地方为变量存储了一个值。
7,printf()函数
printf是一个函数名,圆括号中的内容是从main()函数传递到printf()的信息。这样的信息成为参数,更完整的名称是实际参数。Printf识别括号间的内容并显示在屏幕上。
二,简单程序的结构
函数头
函数体: {
int q;
q=1;
printf(“q\n”);
return 0;
}
三,使程序可读的技巧
1,选择有意义的变量名和使用注释。
2,使用空行分隔一个函数的概念上的各个部分。
四,多个函数
原型是一种声明的形式,用于告诉编译器您正在用一个特殊的函数。它也指明了函数的属性。
五,调试
程序的错误叫做bugs,发现和修正错误的过程叫做调试(debuging)。
语法错误:不遵循C语言规则犯的错误。
语义错误:正确遵循了C语言的规则,但结果不整齐,那就是犯了语义错误。
六,程序状态
程序状态:在程序执行过程中的给定点上所有变量值的集合。
跟踪程序状态的方法:1,自己逐步执行程序。缺点:过于复杂的程序难以自己一步一步执行,不过可以跟踪其中一部分观察程序的实现情况。
2,在程序的几个关键点加入额外的printf()语句监视所选变量的值。
3,使用调试器。调试器是一种程序,可以一步一步运行另一个程序并检查该程序的变量值。
关键字:用来表达语言的单词,不能用于其他目的。
C语言关键字:auto enum restrict unsigned break extern
return void case float short volatile char for signed
while const goto sizeof -Bool
continue if static -Complex -Imaginary default inline
struct do int switch double long typedef else register union