C语言历史与ANSI C标准

需积分: 9 10 下载量 92 浏览量 更新于2024-08-19 收藏 5.65MB PPT 举报
"C语言谭浩强第三版PPT课件" C语言是一种广泛使用的高级编程语言,起源于20世纪70年代的贝尔实验室。它由D.M.Ritchie在B语言的基础上创建,最初用于改进UNIX操作系统的源代码。B语言虽然简洁且接近硬件,但在数据类型方面存在不足。C语言的出现弥补了这些缺点,提供了更丰富的数据类型和控制结构,使得程序更加灵活和强大。 随着C语言的发展,1978年,Brian W. Kernighan和Dennis M. Ritchie共同撰写的《The C Programming Language》一书,成为了C语言的经典教材,也被称作K&R( Kernighan & Ritchie)书籍。这本书的出版极大地推动了C语言的普及,使其在多种计算机平台上得到了广泛应用,不再局限于UNIX系统。 在1983年,美国国家标准化协会(ANSI)制定了一套新的标准,即ANSI C,它对C语言进行了扩展和完善。随后,这个标准被国际标准化组织(ISO)采纳为ISO 9899:1990,也就是我们常说的C89或C90标准。这个标准后来又经过了几次修订,如C99、C11等,以适应不断发展的软件需求和技术进步。 在学习C语言时,应注意不同编译器可能对语言的实现存在细微差异。例如,书中提到的谭浩强第三版PPT课件中,提到了字符数组的使用。字符数组是C语言中存储字符串的一种方式。在定义一个字符数组,如`char c[]={"Pascal program"};`后,如果想要用新的字符串,如"Hello"来替换原有的字符串,直接从键盘输入"Hello"而不添加终止符`\0`,会导致字符数组存储的内容超出原来的边界,变成"Hellol program"。这是因为C语言中的字符串是由连续的字符和一个终止符`\0`组成,没有`\0`,程序会继续读取内存中的后续字符,直到遇到`\0`为止。 因此,在向字符数组输入字符串时,确保在输入结束时添加终止符`\0`至关重要,这可以防止意外访问内存中的非字符串数据。在实际编程中,使用`scanf`函数或者`fgets`函数来读取字符串时,通常会自动处理这个终止符。然而,直接通过标准输入流读取并赋值给字符数组时,就需要程序员手动添加`\0`,以确保字符串的正确性。 C语言以其高效、灵活性和可移植性成为编程界的基石。了解其历史背景、标准演进以及语言特性,对于深入学习和使用C语言至关重要。同时,熟悉所用编译系统的特性,能帮助编写出更符合实际需求的代码。