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

需积分: 14 2 下载量 128 浏览量 更新于2024-08-19 收藏 8.81MB PPT 举报
"指向指针的指针变量-谭浩强 C++" 在C++编程语言中,指针是其核心特性之一,它允许我们存储内存地址,进而实现更灵活的数据操作和内存管理。指针的指针(也称为二级指针)是C++中的一个高级概念,它是一个指向指针变量的指针。这个概念在谭浩强的《C++程序设计》中有所讲解。下面将深入解释这个主题。 1. 指针和指针变量 在C++中,`int i`定义了一个整型变量i,而`int *p`定义了一个指向整型变量的指针p。当执行`p = &i`时,p存储了i的内存地址。这样,p就成为了指向i的指针。 2. 指向指针的指针 当我们定义`int prt`时,我们创建了一个二级指针,它存储的是一个指针变量的地址。在这个例子中,`*prt`是`int *`类型的,意味着它指向一个能够存储整型数据地址的指针。通过`prt = &p`,我们让prt指向了p的地址,即p变量所在的内存位置。 3. 地址层次 考虑以下内存布局: - i 在地址 2000H 存储 - p 在地址 3000H 存储,且p指向 i 的地址2000H - prt 在地址 5000H 存储,且prt指向 p 的地址3000H 这样,如果我们通过`prt`访问值,实际上会经过两次解引用:首先解引用prt获取p的值(即2000H),然后再次解引用这个地址,最终得到i的值。 4. 使用场景 指向指针的指针在处理动态分配的数组、函数参数传递、多级指针解引用以及复杂数据结构(如链表和树)时特别有用。例如,当我们需要传递一个指针的地址给函数,以便函数可以更改原始指针的值,二级指针就成为必需。 5. C++语言特点回顾 C++从C语言发展而来,保留了其结构化程序设计的特性,同时引入了面向对象的概念。C语言的特点包括简洁的语法、丰富的运算符(包括位运算)、良好的可移植性以及高效的执行。然而,这也意味着对程序员的要求较高,尤其是在调试阶段,需要对C++的语法规则有深入理解。 理解和熟练使用指向指针的指针变量是提升C++编程技能的关键步骤,这要求对内存管理、指针解引用和函数参数传递有深刻的认识。通过谭浩强的教材,读者可以逐步掌握这些高级概念,并运用到实际编程项目中。