C++指针深入:指向指针的指针及其应用

需积分: 0 13 下载量 183 浏览量 更新于2024-08-18 收藏 3.82MB PPT 举报
在C++编程中,"指向指针的指针"是一个高级概念,主要涉及到内存管理和指针层次结构的理解。当我们有一个数组,如`char name[5]`,其中`name`实际上是存储字符串数组的首地址,这就引入了指针的概念。在这个例子中,`name`本身就是一个指针,它指向数组的第一个字符。 通常,当我们需要一个变量来存储其他指针时,就需要使用指向指针的指针(pointer to pointer)。例如,`char * *p`这样的类型定义表示`p`是一个指向`char`类型的指针的指针。这意味着`p`可以用来存储`name`这样的数组地址,即`name`的地址作为`p`的值。 在提供的代码示例中,如`9-1.c`到`9-5.c`的练习,涉及到了C++中不同的控制结构,如分支结构(如条件语句)、循环结构(如for或while循环),以及函数的调用和参数传递。函数`fiddle`的示例展示了如何通过引用传递参数来实现数据的交换,这是C++中高效传递大型数据结构的一种方式。 对于结构体`struct aircraft`,它包含成员变量和一个无名联合,这展示了C++中的数据组织和结构化编程。结构体用于表示具有相关属性的对象,如战斗机、轰炸机和运输机。通过给结构体成员赋值并输出,可以清晰地展示对象的特性。此外,还提到了如何使用缺省参数值、函数的作用域和封装、自顶向下设计原则,以及面向对象编程的思想,包括对象、继承和派生等概念。 在面向对象编程中,函数和类是核心概念,函数封装了特定的逻辑和数据,而类则是函数和数据的集合。成员函数的实现可以通过在类声明中嵌入函数体(内联函数),也可以在类外定义并使用`inline`关键字。析构函数则用于在对象销毁前自动执行清理工作,这对于管理复杂对象的生命周期至关重要。 最后,代码示例强调了如何通过分解和抽象来处理复杂对象,将复杂的对象视为简单对象的组合,这是设计模式和软件工程中的一个重要技巧。这有助于提高代码的可读性和维护性,使其更符合面向对象的设计原则。