C++程序设计:形参实参指针详解-谭浩强完整版

需积分: 10 1 下载量 91 浏览量 更新于2024-08-24 收藏 8.66MB PPT 举报
"形参实参都用指针变量-C++程序设计_谭浩强(完整版)ppt" 本文将探讨C++编程中形参和实参使用指针变量的概念,以及这一方法的重要性和相关实践。C++是C语言的扩展,保留了C语言的高效和灵活性,并引入了面向对象的特性。在C++中,函数参数可以是各种类型的,包括指针类型。在给定的代码示例中,我们看到了如何使用指针作为函数的形参和实参。 形参(形式参数)是函数定义中的参数,它们在函数被调用时不包含实际值,而是用于接收调用时传递的实参(实际参数)的值。实参是在函数调用时提供的具体值,可以是变量、常量或表达式。在本例中,`f(int *x, int n)` 函数的形参`x`是一个指向整型变量的指针,而`n`是一个整型数值。 在`main`函数中,定义了一个整型数组`a`和一个指向整型的指针`p`,然后将`p`初始化为`a`的首地址,这样`p`就指向了数组的第一个元素。之后,`f(p, 10)`调用了`f`函数,并将`p`作为实参传递,这里的`p`就是一个实参指针,它包含了数组`a`的首地址。`10`作为第二个实参传递,表示数组的大小。 使用指针作为形参和实参有以下优势: 1. **效率**:通过指针传递大型数据结构(如数组)时,只需传递地址,而不是复制整个数据结构,从而提高了程序的运行效率。 2. **灵活性**:指针可以修改函数内部的数据,实现更复杂的功能,例如动态内存管理、链表操作等。 3. **引用性**:当需要在函数内部改变实参的值时,指针形参可以直接修改实参所指向的内存位置,实现了“按值传递”和“按引用传递”的结合。 在调用函数前,确保实参指针已经赋值是非常重要的。在上述代码中,`p=a;`就完成了这个任务,使得`p`指向有效的内存地址。如果没有进行这样的初始化,`p`将是一个悬挂指针,导致未定义行为,这是编程中应当避免的错误。 C++程序设计中,理解和熟练使用指针是至关重要的技能。指针能够帮助程序员深入理解内存管理,实现高级数据结构和算法,以及优化代码性能。虽然指针的学习曲线较陡峭,但一旦掌握,它们会成为强大的工具,为编写高效、灵活的代码提供可能。因此,对C++初学者来说,学习如何正确地使用形参实参的指针是非常基础且关键的一步。