C语言非法声明剖析:数组引用、指针与引用详解

需积分: 50 0 下载量 130 浏览量 更新于2024-08-14 收藏 8.66MB PPT 举报
在C语言程序设计中,非法的声明通常违反了语言的语法规则和编程习惯,可能导致编译错误。以下是针对提供的"非法声明"示例的详细解释: 1. 非法数组引用声明: `int & a[9];` 这是试图创建一个整型数组的引用,但在C语言中,数组名本身就是地址常量,不能直接作为左值(左操作数)创建引用。正确的做法是定义一个引用类型的变量,然后将其初始化为数组元素的引用。 2. 指向引用的指针声明: `int & *p;` 这里试图声明一个指向引用的指针,这在C语言中是不允许的,因为指针只能指向基本类型或对象,而引用不是基本类型。正确的做法是声明指向整型变量的指针,如果需要处理引用,应该直接声明为`int *& p`。 3. 引用的引用声明: `int & &px;` 在C语言中,一个引用已经是一个间接引用,不能再嵌套引用。直接引用`int &`就已经足够表示对某个整型变量的引用,无需再使用双重引用。 4. 合法引用示例: - `int m=10;` 定义了一个整型变量`m`。 - `int &y=10;` 创建了一个名为`y`的整型引用,它引用的是常量10。 - `int &z;` 此处未初始化引用`z`,在C语言中,未初始化的引用是未定义行为,需要明确赋值。 - `float &t=&m;` 创建一个`float`类型的引用`t`,引用`m`的地址,允许类型转换。 5. C语言的背景和发展: C语言起源于1972年,由Dennis Ritchie和Brian Kernighan在B语言基础上发展而来,最初用于编写UNIX操作系统。C++是在C语言的基础上增加面向对象特性后形成的,C语言因其结构化、灵活性、效率和可移植性而广受欢迎。 6. C语言的特点: - 结构化:简洁灵活,适用于大型系统和小型控制程序,支持结构化编程方法。 - 高级与低级结合:提供了丰富的运算符和数据结构,如位运算,使得代码表达清晰且功能强大。 - 可移植性:同一份C代码可以在多种不同计算机平台上运行,减少了维护成本。 - 语法灵活性与挑战:C语言语法相对宽松,但也可能导致初学者在理解和调试时遇到困难,需要深入理解语法规则。 总结,了解并避免这些非法声明是C语言编程的基本功,同时理解C语言的历史和特点有助于更好地利用其进行高效、可移植的程序设计。对于初学者来说,掌握语言规范和良好的编程习惯至关重要。