C++程序设计基础-谭浩强教程解析

需积分: 38 102 下载量 12 浏览量 更新于2024-08-23 收藏 8.66MB PPT 举报
"该资源是谭浩强C++教程的PPT完整版,内容涵盖了C++的基本概念和语言特点,适合初学者学习。" 在C++编程中,指针是核心概念之一,它允许我们直接操作内存地址。在提供的描述中,涉及到一个关于指针的示例: ```cpp char *argv[] = {"hello", "nanjing", "jiangsu"}; char **pargv = argv; ``` 这里,`argv` 是一个字符指针数组,它存储了三个字符串的首地址,即 `"hello"`, `"nanjing"` 和 `"jiangsu"`。`pargv` 是一个指向 `argv` 数组的指针,即它是一个二级指针,指向 `argv` 的第一个元素,即 `"hello"` 字符串的首地址。 接着,我们来看输出语句: 1. `cout << *(pargv + 1) << endl;` 这条语句输出 `pargv` 指向的数组的第二个元素。因为 `pargv` 是二级指针,所以 `*(pargv + 1)` 表示 `argv` 数组中的第二个元素,即 `"nanjing"` 字符串的首地址。因此,输出的是 `"nanjing"`。 2. `cout << (char)(**pargv + 1) << endl;` 这里首先解引用 `pargv` 得到 `argv[0]`,即 `"hello"` 的首地址,然后再次解引用得到第一个字符 `'h'`。`(char)` 强制类型转换确保加1后的结果仍然是一个字符,所以 `'h' + 1` 对应 `'i'`,因此输出 `'i'`。 3. `cout << *(*pargv + 1) << endl;` 类似于第二条语句,但这里直接对指针 `*pargv` 加1。`*pargv` 是 `'h'`,加1 后得到 `'i'`,所以输出 `'i'`。 4. `cout << *(*(pargv+2)+4) << endl;` 这个语句首先将 `pargv` 增量到第三个元素,即 `"jiangsu"` 的首地址,然后解引用得到 `'j'`,再加4指向 `'g'`,最后解引用输出 `'g'`。 这段代码展示了指针的动态操作和字符串处理,是理解C++中指针和字符串的重要实例。在C++中,掌握指针的用法对于理解和编写高效代码至关重要,因为它允许直接访问内存,进行动态数据结构的构建和优化算法的实现。 C++的发展历程和特点也在摘要中有所提及。C++起源于C语言,增加了面向对象的特性,同时保留了C语言的效率和灵活性。C++的主要特点包括: - 结构化编程,语言简洁且灵活。 - 高级语言与汇编语言的特性结合,支持丰富的运算符和位运算。 - 良好的可移植性,程序可以在不同的计算机平台上运行。 - 语法结构相对宽松,给予了程序员较大的设计自由度,但也增加了学习和调试的难度。 C++的这些特性使得它成为编写系统软件、控制程序、游戏开发以及各种复杂应用程序的首选语言之一。对于初学者,理解C++的基本概念和语法,尤其是指针的使用,是迈向熟练掌握C++的关键步骤。