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

需积分: 35 0 下载量 140 浏览量 更新于2024-08-19 收藏 8.66MB PPT 举报
"指向指针的指针变量-C++程序设计谭浩强" 本文主要讨论的是C++中的指针和指向指针的指针变量的概念,这是C++编程中的一项核心特性。指针在C++中扮演着至关重要的角色,它们允许我们直接操作内存地址,从而实现更高效和灵活的编程。 在C++中,一个指针变量可以存储另一个变量的内存地址。例如,`int i` 是一个整型变量,`*p` 是一个指向整型变量的指针,通过 `p = &i`,我们可以让指针 `p` 存储变量 `i` 的地址。这个过程称为取地址操作,符号 `&` 表示取地址。之后,当我们访问 `*p` 时,实际上是在访问 `i` 的值。 进一步扩展,我们还可以定义一个指向指针的指针变量,例如 `**prt`。这个变量 `prt` 不是直接指向整型变量 `i`,而是指向存储 `i` 地址的指针 `p`。这样的声明 `int i, *p, **prt;` 表示 `i` 是一个整型变量,`p` 是一个指向整型变量的指针,而 `prt` 是一个指向指针的指针,它的基类型是指向整型数据的指针。通过 `prt = &p`,`prt` 存储了 `p` 的地址,而 `p` 又存储了 `i` 的地址。这样,`**prt` 实际上可以用来间接访问 `i` 的值。 C++的这种特性使得指针可以用于实现复杂的数据结构,如链表、树或动态数组(动态内存分配)。通过指针的指针,我们可以在程序中处理多级指针,这在实现某些高级功能时非常有用,比如在函数中传递指针的地址以修改函数外部的指针。 此外,资料中还提到了C++的发展历程。C++是在C语言的基础上发展起来的,C语言由Dennis Ritchie和Brian Kernighan设计,起初用于编写UNIX操作系统。C++增加了类、对象、模板等面向对象编程的特性,同时也保留了C语言的效率和灵活性。C语言的特点包括结构化编程、丰富的运算符(包括位运算)、良好的可移植性和相对宽松的语法,这些特点使得C语言在各种领域广泛应用。 C++语言的学习对于程序员来说是一项挑战,尤其是对于初学者,因为它的语法较为灵活,调试程序可能较为困难。但是,熟练掌握C++的指针和内存管理等概念,将能够编写出高效且可移植性强的代码。尽管如此,随着编程语言的不断进步,如Python、Java等更现代的语言提供了更高级的抽象,降低了程序出错的几率,但也失去了C++那样的底层控制能力。因此,理解并掌握C++中的指针和指向指针的指针变量,对于理解计算机底层工作原理和优化程序性能至关重要。