C++指针深度解析:理解指向指针的指针变量

需积分: 9 4 下载量 85 浏览量 更新于2024-08-19 收藏 8.66MB PPT 举报
在C++程序设计中,"指向指针的指针变量"是一个关键概念。这个术语指的是一个指针变量,它的值实际上是指向另一个指针的内存地址。在谭浩强编著的《C++程序设计》中,这一章节通常用于介绍基础的数据结构和内存管理。 首先,让我们理解基本的指针概念。在C++中,声明一个整型变量`int i`和一个指向它的指针`*p`,`p`的值存储了`i`的地址。例如: ```cpp int i = 2000; // 声明整型变量i int *p = &i; // 定义一个指针p,指向i的地址 ``` 当定义了一个指针`p`后,我们还可以创建另一个指针`**prt`,它可以指向`p`,即`prt`是另一个指针的指针。这在处理动态内存分配或复杂数据结构时非常有用,因为`prt`允许我们间接访问`p`指向的地址中的内容: ```cpp int **prt; // 声明指向指针的指针变量prt prt = &p; // 将prt指向p,即间接指向i ``` 谭浩强在书中会强调,尽管`prt`看起来像是指向整数,但其实它的基类型(base type)是`int *`,即指向整数的指针,而不是整数本身。这意味着`prt`指向的是存储其他指针的地方,而不是可以直接存储数值的内存地址。 C++语言的发展历史与C语言密切相关。C++起源于1972年Dennis Ritchie和Brian Kernighan为UNIX操作系统开发的C语言。C++吸收了C语言的优点,如结构化编程、高效性和可移植性,同时增加了面向对象特性,使其成为现代编程语言中的重要一员。C++的主要特点包括: 1. 结构化编程:C++支持模块化和层次化的设计,便于大型系统的构建和维护。 2. 操作符丰富:C++提供了丰富的算术、逻辑和位操作符,以及灵活的数据结构,使得表达式简洁且功能强大。 3. 可移植性:C++编写的程序可以在多种计算机平台上运行,只需稍加调整即可适应不同的硬件环境。 4. 灵活性与挑战:虽然C++的语法相对宽松,允许程序设计者自由度较大,但这也意味着初学者可能需要花费更多时间理解和调试代码。 谭浩强的《C++程序设计》会深入讲解这些概念,帮助读者理解和掌握如何有效地使用指针和指向指针的指针,以便在实际编程中提高代码的效率和灵活性。