C++程序设计解析:谭浩强课件中的指针与数组示例
需积分: 12 159 浏览量
更新于2024-08-23
收藏 8.72MB PPT 举报
"假设有说明-C++谭浩强课件"
这篇内容涉及到的是C++编程中的指针和数组的使用,以及C++语言的一些基本特点。首先,我们来看提供的代码示例:
```cpp
char *argv[] = {"hello", "nanjing", "jiangsu"};
char **pargv = argv;
cout << *(pargv + 1) << endl;
cout << (char)(**pargv + 1) << endl;
cout << *(*pargv + 1) << endl;
cout << *(*(pargv + 2) + 4) << endl;
```
这段代码中,`argv` 是一个字符指针数组,它包含了三个字符串字面量的指针。`pargv` 是一个指向 `argv` 的二级指针,即 `char **` 类型。
1. 第一行输出 `*(pargv + 1)`,这里 `(pargv + 1)` 表示指针 `pargv` 向前移动一位,指向 `argv` 数组的第二个元素,即 `"nanjing"` 的首地址。因此,`*(pargv + 1)` 输出的是 `"nanjing"`。
2. 第二行 `(char)(**pargv + 1)`,首先 `**pargv` 解引用两次,得到 `argv[0]` 即 `"hello"` 字符串的第一个字符 `'h'`。然后 `(char)` 强制类型转换用于处理整型溢出,`(**pargv + 1)` 表示 `'h'` 后面的字符 `'e'`。这里 `(char)` 作用不大,因为字符本身就是一个字节大小。
3. 第三行 `*(*pargv + 1)`,类似第二行,但直接解引用 `pargv`,得到第一个字符串的首字符 `'h'`,然后加一得到 `'e'`。
4. 第四行 `*(*(pargv + 2) + 4)`,先将 `pargv` 移动到第三个元素 `"jiangsu"`,然后加四,指向 `'g'`,最后解引用输出 `'g'`。
接下来,我们回顾一下C++语言的主要特点:
1. 结构化编程:C++支持结构化编程,它强调程序的模块化和分层设计,使得代码更易于理解和维护。
2. 高级语言与汇编语言的结合:C++具有丰富的运算符,包括算术、逻辑和位运算,同时允许直接访问硬件,提供了高效的编程能力。
3. 可移植性:C++编写的程序可以轻松地在不同的硬件和操作系统上运行,只需少量或无需修改。
4. 语法灵活性:C++的语法相对较松散,允许程序员有很大的设计自由度,但也增加了学习和调试的难度。
5. 强大的数据结构:C++支持多种数据结构,如数组、结构体、类等,使得程序可以处理复杂的数据组织形式。
6. 调试挑战:对于初学者来说,C++的调试可能较为困难,因为编译器可能不会捕获所有运行时错误,需要程序员有较强的逻辑分析能力。
7. 高效性:由于C++编译后的目标代码接近机器码,所以程序运行效率高,适合编写性能要求严格的系统级和控制程序。
这段内容展示了C++中的指针操作和C++语言的基本特性,对于学习C++的初学者来说,理解这些概念至关重要。
2015-08-24 上传
2011-06-26 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
受尽冷风
- 粉丝: 28
- 资源: 2万+
最新资源
- zlib-1.2.12压缩包解析与技术要点
- 微信小程序滑动选项卡源码模版发布
- Unity虚拟人物唇同步插件Oculus Lipsync介绍
- Nginx 1.18.0版本WinSW自动安装与管理指南
- Java Swing和JDBC实现的ATM系统源码解析
- 掌握Spark Streaming与Maven集成的分布式大数据处理
- 深入学习推荐系统:教程、案例与项目实践
- Web开发者必备的取色工具软件介绍
- C语言实现李春葆数据结构实验程序
- 超市管理系统开发:asp+SQL Server 2005实战
- Redis伪集群搭建教程与实践
- 掌握网络活动细节:Wireshark v3.6.3网络嗅探工具详解
- 全面掌握美赛:建模、分析与编程实现教程
- Java图书馆系统完整项目源码及SQL文件解析
- PCtoLCD2002软件:高效图片和字符取模转换
- Java开发的体育赛事在线购票系统源码分析