
C++程序设计解析:谭浩强版PPT要点
下载需积分: 12 | 8.66MB |
更新于2024-08-23
| 125 浏览量 | 举报
收藏
"假设有说明-C++谭浩强 PPT版本"
在C++编程中,`argv` 是一个在程序启动时由操作系统提供的特殊数组,它包含了程序运行时传入的命令行参数。在这个例子中,`char *argv[] = {"hello", "nanjing", "jiangsu"}` 定义了一个字符指针数组,`argv` 的每个元素都是一个指向字符串的指针,分别指向"hello"、"nanjing"和"jiangsu"这三个字符串常量。
接下来的语句 `char **pargv = argv;` 将 `argv` 的首地址赋值给了 `pargv`,这样 `pargv` 就是一个指向 `argv` 数组的指针,即二级指针。现在我们可以逐条分析给出的输出语句:
1. `cout << *(pargv + 1) << endl;`
这个语句会打印 `pargv` 指向的数组中的第二个元素,也就是 `argv[1]`,因此输出是 "nanjing"。
2. `cout << (char)(**pargv + 1) << endl;`
这里首先解引用 `**pargv`,得到 `argv[0]` 的第一个字符 'h',然后将其转换为 `char` 类型并加上 1,变成了 'i',所以输出是 "i"。
3. `cout << *(*pargv + 1) << endl;`
这里先对 `*pargv` 解引用,得到 `argv[0]`,再对 `argv[0]` 加 1 后解引用,相当于访问 `argv[0]` 的第二个字符,即 'e',所以输出是 "e"。
4. `cout << *(*(pargv + 2) + 4) << endl;`
首先,`*(pargv + 2)` 访问 `argv` 数组的第三个元素,即 "jiangsu"。然后对这个指针加 4,跳过 "jiangsu" 的前四个字符 'j', 'i', 'a', 'n',最后解引用得到 'g',所以输出是 "g"。
C++的发展历史部分提到了C语言的起源,C++作为C语言的扩展,增加了面向对象的特性,如类、模板、继承等。C++的设计目标是保持C语言的高效性和灵活性,同时引入更高级别的抽象,以支持更复杂的软件开发。C语言的特点包括结构化编程、丰富的运算符(包括位运算)、良好的可移植性以及较为宽松的语法,这些特点使得C语言在各种领域都得到了广泛的应用。然而,它的语法结构的灵活性也为初学者带来了挑战,需要深入理解才能编写出高质量的程序。调试C/C++程序通常需要借助调试器,因为编译时可能无法捕获所有错误,执行时可能出现问题。
相关推荐








慕栗子
- 粉丝: 25
最新资源
- Tuscany开源项目:C++版本sdo的通用数据操作接口
- C#语言打造简易聊天室应用教程
- 万辰网络办公系统OA 4.5版:ASP+Access 免费开源解决方案
- 电脑维护75个实用技巧提升你的技能
- USACO 2001年比赛题解及测试数据解析
- VB图表与曲线源码示例:初学者必备资源
- 利用CSS+JS构建动态网页相册查看器
- C++实现俄罗斯方块游戏源代码分享
- C#开发的VS2005网络文本抓取与管理工具
- 性能测试学习路线图:详细指南
- 高效DOM文档自动生成工具介绍
- 软件项目开发文档格式详解及各阶段指南
- Javascript脚本实现的数字输入验证与控制库
- C#打造.NET2.0在线系统与密码找回功能
- JXTA java jar包及其依赖组件列表
- C++编程者的新选择:小巧且无需繁琐安装的工具
- ASP实现Code 39条码打印功能指南
- VB编程语言的核心概念与应用技巧
- C#开发的网络商城系统全解析
- Delphi实现简易计算器的设计与开发
- 探索Ajax编程:经典实例集锦
- AspNetPager702:分页控件组件的最新升级
- 使用Socket和多线程构建多人聊天室代码
- USACO 2003年解题报告与测试数据分析