C++编程:理解指向指针的指针变量
需积分: 17 146 浏览量
更新于2024-08-19
收藏 8.82MB PPT 举报
"指向指针的指针变量-C++-谭浩强"
在C++编程语言中,指针是一个重要的概念,它可以存储变量的内存地址。而"指向指针的指针变量"(也称为二级指针)是这个概念的一个延伸,它是一个指针,其值是另一个指针的地址。在提供的描述中,我们看到如何声明和使用这种类型的变量。
首先,我们有常规的指针声明:
```cpp
int i; // 声明一个整型变量i
int *p; // 声明一个指向整型变量的指针p
p = &i; // 将p初始化为i的地址
```
在这里,`p`存储了变量`i`的地址,即`2000H`。然后,我们可以声明一个指向指针的指针变量:
```cpp
int **prt; // 声明一个指向指针的指针变量prt,其基类型是指向整型数据的指针
```
接下来,我们将`prt`初始化为`p`的地址,即`3000H`:
```cpp
prt = &p;
```
这样,`prt`就指向了`p`,而`p`又指向了`i`。这种结构允许我们通过`prt`间接访问`i`的值。
在C++中,这种多层次的指针可以用于复杂的数据结构,如动态内存分配的多维数组,或者在函数中传递指针本身作为参数。例如,当我们需要修改一个函数内部的指针变量时,可以将指针的地址作为参数传递,而不是指针本身。这样,函数可以通过改变二级指针的值来影响外部的作用域。
此外,C++中的指针还支持解引用操作,对于二级指针,我们需要两次解引用才能访问原始变量的值:
```cpp
*(*prt) = 4000; // 修改i的值
```
在这个例子中,`*prt`首先得到`p`的值,然后再用`*`操作符获取`p`所指向的值,即`i`。
C++语言的发展历程也值得一提。C++是由Bjarne Stroustrup在C语言的基础上发展起来的,旨在提供面向对象编程的功能,同时保留C语言的效率和灵活性。C++增加了类、模板、异常处理等特性,使得它成为一种强大的系统级和应用级编程语言。
C语言的特点包括结构化编程、丰富的运算符(包括位运算)、良好的可移植性和相对宽松的语法。虽然这使得C语言在编写程序时具有很大的自由度,但也意味着调试可能会更复杂,尤其是对初学者而言。
"指向指针的指针变量"是C++中用于处理复杂数据结构和间接访问内存的一种机制,它是理解C++内存管理和指针操作的关键概念。通过学习和熟练掌握这一概念,程序员能够编写更高效、更灵活的代码。
2013-07-07 上传
2020-06-14 上传
2010-03-13 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
Pa1nk1LLeR
- 粉丝: 62
- 资源: 2万+
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明