清华大学郑莉教授讲解C++第6章:数组、指针与字符串

需积分: 10 4 下载量 145 浏览量 更新于2024-08-01 收藏 542KB PPT 举报
"C++课件第6章 清华大学老师 郑莉" 本章内容主要涵盖了C++中的核心概念,包括数组、指针、动态存储分配、指针与数组的关系、指针与函数以及字符串。这些知识点是C++编程的基础,对于理解和编写高效的C++程序至关重要。 1. **数组**:数组是C++中的一种基本数据结构,它是由相同类型的多个变量按特定顺序组成的集合。数组属于构造类型,意味着你可以创建一个包含多个相同类型元素的单一对象。数组的元素可以通过索引来访问,索引通常从0开始。 2. **一维数组的声明与引用**:声明一维数组时,我们需要指定类型说明符(如`int`)和数组名,后跟方括号内的常量表达式(数组长度)。例如,`inta[10];`声明了一个包含10个整数的数组。引用数组元素时,我们使用数组名加索引,如`a[0]`。数组名代表数组的第一个元素的地址,且不能被赋值。 3. **数组的存储顺序**:在内存中,数组元素是连续存放的,这意味着它们的地址是依次增加的。数组名是一个指向数组首元素的常量指针。 4. **数组初始化**:在声明数组时,可以对数组进行初始化,这可以是在声明时直接赋予所有或部分元素初始值。例如,`staticinta[10]={0,1,2,3,4,5,6,7,8,9};`。如果只初始化部分元素,未指定的元素会被自动初始化为零。还可以省略数组长度,如`staticinta[]={1,2,3,4,5};`,编译器会根据提供的初始值数量自动推断长度。 5. **指针**:指针是C++中另一个关键概念,它存储的是其他变量的内存地址。指针变量需要先声明再使用,并可以通过取地址运算符`&`获取变量的地址。通过解引用操作符`*`,我们可以访问和修改指针所指向的变量。 6. **动态存储分配**:使用`new`运算符可以动态地在运行时分配内存,这对于需要在程序运行过程中创建数组或其他对象的情况非常有用。对应的,使用`delete`运算符可以释放不再需要的内存。 7. **指针与数组**:指针可以用于操作数组,特别是当数组长度未知或者需要在程序运行时确定时。通过指针,我们可以遍历数组,传递数组给函数,或者在内存中移动和复制数组。 8. **指针与函数**:在函数参数中使用指针可以允许函数修改调用者提供的变量的值。此外,指针可以作为函数返回值,用来返回内存分配的对象或数组的地址。 9. **字符串**:C++中的字符串实际上是一维字符数组。标准库提供`std::string`类来方便地处理字符串,但也可以使用字符数组和指针进行基本的字符串操作。字符串通常以空字符`\0`作为结束标志。 学习这些概念是掌握C++编程的基础,理解并熟练运用数组、指针和字符串可以帮助编写出高效、灵活的代码。在实际编程中,还需要结合控制流(如循环和条件语句)、函数和类等其他概念,以构建复杂的程序。