C++程序设计:形参实参指针详解

需积分: 13 4 下载量 156 浏览量 更新于2024-08-23 收藏 8.66MB PPT 举报
"形参实参都用指针变量-C++面向对象程序设计 谭浩强" 这篇资源主要讨论的是C++编程中的一个重要概念——形参(形式参数)和实参(实际参数)使用指针变量的情况。在C++中,函数调用时可以传递变量的地址,即使用指针作为参数,这样可以实现更高效的数据交换和处理。 在给出的代码示例中,`main`函数声明了一个整型数组`a`和一个指向整型的指针`p`,然后将`a`的首地址赋值给`p`,使得`p`指向数组的第一个元素。之后调用了名为`f`的函数,传入了`p`和数组的大小`10`作为参数。在`f`函数内部,形参`x`和`n`分别接收`p`和`10`的值,`x`是一个指向整型的指针,它将接收`p`的值,即数组`a`的第一个元素的地址,`n`接收`10`的值,表示数组的长度。 使用指针作为参数的优势在于: 1. **效率**:通过传递指针而不是复制整个数据结构,可以节省内存和时间,特别是当处理大型数据结构如数组或结构体时。 2. **灵活性**:指针参数允许函数直接修改调用者提供的数据,这对于需要原地修改数据的函数非常有用。 3. **间接访问**:函数可以通过指针访问不在其作用域内的数据,这在处理全局变量或动态分配的内存时很有用。 然而,使用指针作为参数也需要注意以下几点: - **安全性**:确保实参指针在调用前已经正确初始化,避免未定义行为,例如空指针引用。 - **生命周期管理**:如果函数内部修改了指针所指向的数据,需要考虑这些改变对函数外部的影响,以及内存的释放问题。 - **理解指针**:正确使用指针需要深入理解指针的工作原理,包括指针的运算、解引用等,这对初学者来说可能有一定难度。 C++语言的发展历程和特点也被提及。C++是在C语言的基础上发展起来的,保留了C语言的很多特性,如结构化编程、丰富的运算符、良好的可移植性和高效的执行效率。C++增加了类和对象,支持面向对象编程,同时也引入了模板、异常处理和STL(标准模板库)等高级特性,使编程更加灵活和强大。 C语言的主要特点包括: 1. 结构化:C语言的结构化特性使其适合编写各种规模的程序。 2. 高级与低级结合:丰富的运算符和位运算功能使得C语言既能进行高级抽象,也能进行底层内存操作。 3. 可移植性:C语言编写的程序可以在多种计算机平台上运行,只需少量或无需修改。 4. 自由度高:语法相对宽松,允许程序员有更大的设计自由度,但也增加了学习和调试的难度。 理解和熟练使用指针是掌握C++编程的关键之一,这在函数调用和数据操作中尤为关键。同时,了解C++语言的历史和特性,可以帮助我们更好地理解和运用这种强大的编程语言。