C++教程:理解指向指针的指针变量

需积分: 10 10 下载量 109 浏览量 更新于2024-08-23 收藏 8.66MB PPT 举报
"指向指针的指针变量-C++面向对象程序设计(谭浩强)——教学ppt" 在C++编程中,指针是至关重要的概念,它允许我们直接操作内存地址,增强了程序的灵活性和效率。当我们谈论“指向指针的指针变量”时,这意味着我们有一个指针变量,它存储的不是普通变量的地址,而是另一个指针变量的地址。这种二级指针在处理多级指针数组或动态内存分配时特别有用。 例如,在提供的描述中,我们看到以下代码片段: ```cpp int i, *p, prt; i = 2000H; // 假设这是一个16进制的整数值 p = &i; // p 指向 i 的地址,即 2000H prt = &p; // prt 指向 p 的地址,即 3000H ``` 这里,`p` 是一个指向整型变量 `i` 的指针,它的值是 `i` 的地址(3000H)。而 `prt` 是一个指向指针 `p` 的指针,它的值是 `p` 的地址(5000H)。这允许我们通过 `prt` 来间接访问 `i` 的值,即通过两次解引用: ```cpp int value = prt; // 这将获取 i 的值 ``` C++中的指针是类型相关的,因此 `*p` 和 `prt` 都有特定的基类型。在这个例子中,`p` 的基类型是 `int`,意味着它指向的是一个整型变量;而 `prt` 的基类型是指向 `int` 类型指针的指针,即 `int*`。这很重要,因为指针操作需要与它们所指的类型匹配,否则会导致编译错误。 C++语言的发展历程始于早期的 BCPL 和 B 语言,由 Dennis Ritchie 和 Brian Kernighan 在贝尔实验室开发出 C 语言,用于构建 UNIX 操作系统。C++ 由 Bjarne Stroustrup 于 1983 年在 C 语言的基础上发展而来,引入了面向对象编程的概念,如类、对象、封装、继承和多态等特性,极大地扩展了 C 语言的功能。 C 语言以其简洁的语法、强大的功能和高度的效率闻名。它支持结构化编程,可以处理低级操作,如位运算,同时提供了丰富的数据结构和运算符。C 语言的程序具有良好的可移植性,可以在多种不同的硬件平台上运行,只需少量或无需修改。然而,由于其自由度高,对于初学者来说,理解和调试程序可能会相对困难。 C++ 继承了 C 语言的优点,并在其基础上增加了模板、异常处理、命名空间和更多的面向对象特性,使其更适合大型系统开发和复杂软件工程。通过使用指针,包括指向指针的指针,C++ 程序员能够创建高效且灵活的代码,但这也需要对内存管理和指针操作有深入的理解。