C++语言程序设计:数组、指针与字符串解析

需积分: 10 1 下载量 147 浏览量 更新于2024-07-25 收藏 849KB PPT 举报
"C++语言程序设计 整理 PPT 郑莉 清华大学出版社" C++是一种强大的面向对象的编程语言,广泛应用于系统软件、应用软件、嵌入式系统以及游戏开发等领域。本资源主要关注C++中的数组、指针、动态存储分配、指针与数组、指针与函数、vector的使用以及字符串相关的概念。 1. **数组**: 数组是C++中一种基本的数据结构,它是由相同类型的多个变量组成的集合。数组的每个成员被称为元素,元素可以通过索引来访问,索引通常从0开始。数组声明的语法为`类型说明符 数组名[常量表达式]`,例如`inta[10]`声明了一个包含10个整数的数组。数组的大小在声明时必须是常量表达式。 2. **一维数组的声明与引用**: 在声明数组后,可以通过索引来引用其元素,如`a[0]`、`a[1]`等。数组元素在内存中是连续存储的,数组名代表了数组第一个元素的地址,但数组名本身不可被赋值。例如,示例代码展示了如何初始化和输出数组元素。 3. **一维数组的存储顺序与地址**: 数组元素在内存中按照声明时的顺序连续存放,数组名是数组首元素的地址。例如,`a[0]`到`a[9]`在内存中的顺序是连续的,数组名`a`是`a[0]`的地址,是常量,不可更改。 4. **一维数组的初始化**: 数组可以在声明时初始化,可以为所有元素或部分元素赋值。如果只给出部分元素的初始值,剩余元素会被自动初始化为类型默认值(如整型为0)。例如: - `static int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};` - `static int b[10] = {0, 1, 2, 3, 4};` - `static int c[] = {1, 2, 3, 4, 5};` 5. **指针**: 指针是C++中的另一个核心概念,它存储了内存地址。通过指针,可以直接访问和修改地址所指向的变量。指针声明的语法是`类型 *指针名`,例如`int *p`。指针可以用于遍历数组,也可以与函数结合使用,传递数组的地址给函数。 6. **动态存储分配**: 使用`new`运算符可以动态地在运行时分配内存,用`delete`释放内存。例如,`int *p = new int;`分配一个整型变量,`delete p;`释放内存。 7. **指针与数组的关系**: 数组名实际上可以被视为指向数组首元素的指针。因此,可以使用指针进行数组操作,如`int *p = a;`,这里`p`指向`a[0]`。 8. **指针与函数**: 指针可以作为函数参数,允许函数直接修改传入的变量或数组。例如,`void modify(int *arr, int size) {...}`函数可以修改`arr`指向的数组。 9. **vector**: `vector`是C++标准库提供的动态数组,它允许在运行时改变大小。`#include<vector>`,然后可以使用`std::vector<int> vec;`声明一个整数类型的vector。向vector添加元素、删除元素或访问元素都比原始数组更灵活。 10. **字符串**: C++中的字符串通常是`char`数组,可以使用`std::string`类进行更方便的操作。例如,`std::string str = "Hello, World!";`创建一个字符串对象,`str.length()`获取字符串长度,`str[i]`访问第i个字符。 以上内容是C++程序设计中的基础概念,理解并掌握这些知识对于编写高效、安全的C++代码至关重要。