C++非法声明解析:数组引用、指针引用与引用的误区

需积分: 0 1 下载量 35 浏览量 更新于2024-08-19 收藏 8.81MB PPT 举报
在C++程序设计领域,谭浩强编著的教材中,有一章节专门讨论了C++语言的一些非法声明。这些声明在C++编程中被认为是错误的,因为它们违反了语言的语法规则。以下是其中三个具体的例子: 1. **非法数组引用声明**: 试图创建一个整型数组的引用 `int & a[9];` 是不允许的,因为引用必须直接绑定到已存在的变量,而不能用来间接访问数组元素。在C++中,应直接引用数组名或单个元素,例如 `int(&a)[9]` 或 `int& a[9][1]`。 2. **非法指针引用声明**: `int & *p;` 这样的声明试图建立一个指向引用的指针,这是语法错误。在C++中,引用是不能作为普通指针的指向的。如果需要,可以直接使用引用来传递指针,如 `int* p = &x;`,而不是 `int & *p`。 3. **非法的引用引用声明**: `int & &px;` 是另一个非法的声明,因为引用已经是间接引用类型,不能再加 `&`。正确的做法是直接引用已存在的引用,如 `int& px = y;`。 此外,谭浩强强调了C++语言的发展背景,特别是C语言如何发展成为C++。C++起源于1972年的B语言,由Dennis Ritchie和Brian Kernighan在B语言基础上改进而成,主要目标是用于编写UNIX操作系统。C++在C语言的基础上扩展了面向对象特性,增加了模板和其他高级特性,使其成为更加强大且具有灵活性的语言。 C语言的主要特点包括: - 结构化编程:简洁且灵活,适合大型系统和小型控制程序,也适用于科学计算。 - 高级语言和低级语言特性结合:丰富的运算符支持算术逻辑运算和位运算,同时提供了复杂的数据结构。 - 可移植性:C语言编写的程序可以在不同类型的计算机上运行,无需太多改动。 - 语法自由度大,但也可能导致调试困难,尤其是对新手而言。 对于C++编程,虽然语法灵活性带来设计自由,但也要求开发者具备扎实的语法基础和足够的理解,才能避免非法声明并编写出高质量的代码。谭浩强的教材会深入讲解这些知识点,帮助读者掌握C++编程的最佳实践。