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

需积分: 9 5 下载量 28 浏览量 更新于2024-07-13 收藏 8.66MB PPT 举报
"形参实参都用指针变量-C++完整版课件" 这篇课件主要探讨了C++编程中的一个关键概念——形参(形式参数)和实参(实际参数)使用指针变量的情况。在C++中,形参和实参是函数调用时的关键元素,它们之间通过传递数据进行交互。形参是在函数定义时使用的占位符,而实参是在调用函数时提供的具体值。 在示例代码中,我们看到一个简单的例子: ```c++ void main(void) { int a[10], *p; p = a; // ... f(p, 10); // ... } void f(int *x, int n) { // ... } ``` 在这个例子中,`main`函数定义了一个整型数组`a`和一个指向数组的指针`p`,然后将`p`赋值为数组`a`的首地址。接着,`f`函数被调用,传入`p`作为指针形参`x`,以及数组的大小`10`作为另一个形参`n`。 实参`p`是一个指针,它包含了数组`a`的第一个元素的地址。在函数调用`f(p, 10)`中,`p`的值(即数组的地址)被传给了`f`函数的形参`x`。这样,在`f`函数内部,`x`就成为了指向`a`数组的指针,可以用来访问和修改数组的元素。 使用指针作为形参和实参有以下几个优点: 1. **效率**:通过传递指针,而不是整个对象的副本,可以节省内存和提高程序的运行速度,尤其是当传递的是大型数据结构(如数组或结构体)时。 2. **灵活性**:指针可以允许函数修改调用者提供的变量的值,这在需要函数直接改变外部状态时很有用。 3. **动态性**:函数可以通过指针访问不同大小或类型的内存区域,增加了代码的复用性和灵活性。 然而,使用指针作为参数也有一定的风险,比如如果实参指针未初始化或者指向无效内存,可能导致程序崩溃或难以预料的行为。因此,确保在调用函数前给实参指针变量赋值是非常重要的,就像课件中提到的:“实参指针变量调用前必须赋值”。 C++语言的特性还包括: - **结构化编程**:C++支持结构化编程,通过函数、循环和选择结构等组织代码,使得程序易于理解和维护。 - **混合级语言**:C++结合了高级语言的抽象能力和汇编语言的低级控制,提供了丰富的运算符和数据结构。 - **可移植性**:C++程序可以在不同的计算机系统上运行,只需少量或无需修改,这得益于其相对独立于硬件的语法。 - **非严格的语法**:虽然C++提供了类型检查,但语法的宽松性意味着程序员需要更仔细地管理代码,以避免潜在的错误。 对于初学者来说,理解和调试C++程序可能更具挑战性,因为它的灵活性允许更复杂的编程模式,但也可能导致难以察觉的问题。然而,随着对语言规则的深入理解,编写和调试C++程序会变得更加得心应手。