C++指针示例:理解argv和pargv的输出
需积分: 43 2 浏览量
更新于2024-08-19
收藏 8.66MB PPT 举报
在C++程序设计中,谭浩强的教材提供了一个关于指针的实例来帮助理解。假设有一个`char *argv[]`数组,它存储了字符串"hello", "nanjing", 和 "jiangsu"。`char **pargv`是一个指向`argv`数组首地址的指针,用于间接访问数组元素。
1. `cout<<*(pargv+1)<<endl;`
这个语句首先对`pargv`加1,然后解引用`*(pargv+1)`,实际上就是访问`argv`中的第二个元素,即"nanjing"。因此,输出将是"Nanjing"。
2. `cout<<(char)(**pargv+1)<<endl;`
这里,`**pargv`首先解引用`pargv`所指向的地址,获取到`argv`的第一个元素"hello",然后对字符数组中的第一个字符(索引0)加1。由于字符数组中的每个字符实际上是对应的ASCII码,加1会得到下一个字符,即'e',所以输出是'e'。
3. `cout<<*(*pargv+1)<<endl;`
这个表达式首先解引用`*pargv`,得到字符串"hello",然后对第一个字符'e'加1。因为字符串是字符数组,这里相当于移动到下一个字符'i',输出是'i'。
4. `cout<<*(*(pargv+2)+4)<<endl;`
再次对`pargv`加2,得到指向"jiangsu"的指针,然后对这个字符串的第四个字符加1。"jiangsu"的ASCII码表示中,'s'的索引是4(注意在C++中索引从0开始),所以加1后得到'g',输出是'g'。
这段代码展示了C++中指针的基本用法,包括一级指针(`pargv`)、二级指针(`*(pargv+1)`)以及字符数组的处理。同时,它演示了C++语言的灵活性,虽然语法结构可能不如某些高级语言严密,但通过灵活的指针操作可以实现复杂的内存访问。此外,C++的可移植性和对低级控制的支持使得它在系统编程和软件开发中非常受欢迎。学习C++的过程中,理解和掌握指针是至关重要的,因为它们在数据结构、动态内存管理和函数参数传递等方面发挥关键作用。
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
深井冰323
- 粉丝: 24
- 资源: 2万+
最新资源
- Python中快速友好的MessagePack序列化库msgspec
- 大学生社团管理系统设计与实现
- 基于Netbeans和JavaFX的宿舍管理系统开发与实践
- NodeJS打造Discord机器人:kazzcord功能全解析
- 小学教学与管理一体化:校务管理系统v***
- AppDeploy neXtGen:无需代理的Windows AD集成软件自动分发
- 基于SSM和JSP技术的网上商城系统开发
- 探索ANOIRA16的GitHub托管测试网站之路
- 语音性别识别:机器学习模型的精确度提升策略
- 利用MATLAB代码让古董486电脑焕发新生
- Erlang VM上的分布式生命游戏实现与Elixir设计
- 一键下载管理 - Go to Downloads-crx插件
- Java SSM框架开发的客户关系管理系统
- 使用SQL数据库和Django开发应用程序指南
- Spring Security实战指南:详细示例与应用
- Quarkus项目测试展示柜:Cucumber与FitNesse实践