C++程序设计:理解指向指针的指针变量

需积分: 4 1 下载量 190 浏览量 更新于2024-08-24 收藏 8.66MB PPT 举报
"指向指针的指针变量-C++程序设计 谭浩强完整版" 在C++编程中,指针是重要的数据类型之一,它能够存储其他变量的内存地址。这里我们关注的是“指向指针的指针变量”,这是一种更高级的概念,允许我们存储指针变量的地址。在描述中,可以看到一个示例: ```cpp int i, *p, **prt; ``` 在这个例子中,`i` 是一个整型变量,`p` 是指向 `i` 的指针,而 `prt` 是一个指向指针 `p` 的指针。通过 `&` 运算符,我们可以获取 `i` 和 `p` 的地址,分别赋值给 `p` 和 `prt`。 ```cpp p = &i; prt = &p; ``` 这样的层次结构使得 `prt` 能够间接地访问 `i` 的值,因为 `prt` 存储的是 `p`(即 `i` 地址的指针)的地址。因此,通过两次解引用,`**prt` 可以得到 `i` 的值。 在C++中,这种多层次的指针使用广泛于动态内存管理、函数参数传递以及复杂数据结构如链表和树的实现。例如,当我们需要更改一个指针的指向时,可以通过指向指针的指针来实现,这在某些情况下是非常有用的。 此外,这段内容还提到了C++的起源和发展。C++由C语言发展而来,C语言由Dennis Ritchie和Brian Kernighan在1972年设计,主要为编写UNIX操作系统。C++是在C语言的基础上增加了面向对象特性,如类、继承、多态等,使其成为一个更强大的编程工具。C++的特点包括: 1. 结构化编程:C++支持结构化编程,允许程序员以模块化的方式组织代码,易于理解和维护。 2. 高级与低级语言的结合:C++拥有丰富的运算符,包括位运算,可以进行底层数据操作,同时具有高级语言的抽象能力。 3. 可移植性:C++程序在不同平台上移植性良好,编写一次可以在多种硬件和操作系统上运行。 4. 自由度大但需谨慎:C++语法结构相对宽松,给予程序员很大的设计自由,但也需要开发者有较高的编程技巧,尤其是对于错误处理和调试。 学习C++需要理解指针的基本概念及其高级用法,包括指向指针的指针。虽然这可能对初学者有一定难度,但熟练掌握后,可以编写出高效且功能强大的程序。调试C++程序时,理解内存布局和指针的层次关系至关重要,因为这是找出程序错误的关键。