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

需积分: 12 8 下载量 76 浏览量 更新于2024-08-23 收藏 8.72MB PPT 举报
"形参实参都用指针变量-C++谭浩强课件" 这篇课件主要讲解了C++编程中的一个关键概念——形参(形式参数)和实参(实际参数)都使用指针变量的情况。在C++中,形参是函数定义中的参数,而实参则是调用函数时传递给这些形参的值。使用指针作为参数可以使函数直接操作调用者提供的内存地址,提高效率并实现更灵活的数据交互。 首先,让我们深入理解形参和实参的概念。形参是函数定义的一部分,它们在函数内部起到占位符的作用,用来接收函数被调用时传入的实际值。实参则是函数调用时提供的具体值,这些值被赋给形参,使得函数可以根据这些值进行计算或处理。 在示例代码中,`main()`函数声明了一个整型数组`a`和一个指向整型的指针`p`,然后将`p`赋值为`a`的首地址,这样`p`就指向了数组的第一个元素。接着调用了`f()`函数,传递了`p`和数组的大小`10`作为参数。这里,`p`作为实参,是一个指针,它传递了数组的起始地址;`10`作为另一个实参,是一个简单的整数值。 `f()`函数的形参列表包括一个整型指针`x`和一个整型`n`。当`f()`被调用时,`p`的值(即`a`的首地址)被赋给形参`x`,而`10`被赋给形参`n`。在函数体内,`x`现在指向的是调用者提供的数组的某个位置,可以通过`x`访问和修改这个位置的值。 C++允许使用指针作为参数,这样可以传递大型数据结构(如数组)的引用,而无需复制整个数据结构。这种做法节省了内存和时间,特别是在处理大数据量时。此外,通过指针,函数可以直接修改实参所指向的内存,这在需要改变调用者提供的数据时非常有用。 指针参数的一个重要注意事项是,实参指针变量在调用函数之前必须被初始化,也就是必须有明确的内存地址供其指向。在上述例子中,`p=a;`确保了`p`有一个有效的地址,因此它可以安全地传递给`f()`函数。 C++的这种特性使得它在系统级编程、游戏开发、嵌入式系统等领域广泛应用,因为这些领域通常需要高效地操作内存和数据。然而,这也要求程序员对指针操作有深入的理解,避免出现空指针引用、内存泄漏等错误。 最后,C++源自C语言,保留了C语言的许多特点,如结构化编程、丰富的运算符和良好的可移植性。同时,C++通过引入类、模板、异常处理等机制,增强了面向对象编程的能力。虽然C++的语法相对宽松,对于初学者来说可能需要更多的时间来掌握,但一旦熟练,就能编写出高效且可维护的代码。调试C++程序时,通常需要借助于编译器的错误提示和调试工具,以确保程序在运行时的正确性。