C++指针示例解析: argv数组与输出结果
需积分: 13 64 浏览量
更新于2024-08-24
收藏 8.58MB PPT 举报
在C++程序设计中,谭浩强的教材中提到一个关于指针的概念示例。首先,让我们分析给定的代码片段:
```c++
char *argv[] = {"hello", "nanjing", "jiangsu"};
char **pargv = argv;
```
这里的`argv`是一个字符数组,存储的是字符串常量的地址,每个元素代表一个字符串的首地址。`pargv`是一个指向`argv`数组的指针,也就是一个指向指针的指针。
接下来的语句演示了如何通过指针操作访问数组中的元素:
1. `cout << *(pargv+1) << endl;` 这行代码将输出`argv`数组中的第二个元素,即`"nanjing"`的第一个字符,因为`pargv + 1`指向第二个元素的地址,`*`取址操作获取该地址上的值,即`n`。
2. `cout << (char)(**pargv + 1) << endl;` 这里使用了两次`*`操作。首先`**pargv`解引用`pargv`指向的地址,得到`argv`的地址,然后取该地址上的第一个字符的ASCII码加1(即`n`的ASCII码+1),转换为字符类型后输出,结果也是`n`。
3. `cout << *(*pargv+1) << endl;` 同样,先解引用`*pargv`得到`"nanjing"`的地址,然后取该地址上的第二个字符,即`a`。
4. `cout << *(*(pargv+2)+4) << endl;` 这部分涉及到两个指针级别的操作。`*(pargv+2)`得到`"jiangsu"`的地址,再解引用`*(pargv+2)`加上4,因为字符数组索引通常从0开始,所以`+4`实际上是偏移到下一个字符`i`的地址,取这个地址上的值,输出字符`i`。
这些例子展示了C++中指针和数组操作的基本用法,包括通过指针间接访问数组元素、以及嵌套指针解引用的复杂过程。C++语言允许程序员灵活地处理内存,这对于数据结构的操作和函数参数传递非常重要。同时,C++的可移植性得益于其简洁的语法和良好的结构化特性,使得在不同平台上的程序可以直接运行,但在编写过程中可能需要额外注意类型转换和指针的正确使用,以避免潜在的错误和问题。对于初学者来说,理解指针概念和C++的灵活性是一门学问,但只要掌握了规则,就能提高程序的效率和健壮性。
2013-02-22 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
雪蔻
- 粉丝: 28
- 资源: 2万+
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查