第13讲:数组的定义和使用
- 一维数组的定义、内存形式(连续存储)、初始化。
- 静态数组与动态数组的初始值。
- 二维数组的定义、内存形式(按行连续存储)、初始化。
- 多维数组的引用。
第14讲: 数组与函数
- 数组元素作为函数参数。
- 整个数组作为函数参数,传递的是数组的首地址,所以实参和形参为同一个对象。
- 数组作为函数参数时,编译器不检查数组的长度,因此将数组的首地址传入函数时,常需传入另一个参数来表示实参数组的长度。但是多维数组除第一维外其余维数的长度不可省略,否则无法确定数组的基类型。
第15讲:字符串的处理
- 编译器在编译字符串常量时自动在其末尾加上结束符
'\0'
。
- 【字符串处理函数】
- 【字符串对象】:其类在
string
头文件里定义,字符串对象不需结束符\0
,且采用动态内存管理,还会检查内存越界。
- 字符串对象可用字符串常量直接进行赋值而不需调用字符串处理函数。
- 字符串对象的操作:赋值运算、连接运算、关系运算。
第16讲:数组的应用
- 用数组解决排序问题:交换排序、选择排序。
- 用数组解决查找问题:顺序查找、二分查找。
- 【二分查找实例】:
#include <iostream>
using namespace std;
int BinarySearch(int A[], int n, int find){
int low, upper, mid, result=-1;
low = 0, upper = n-1;
while(low<=upper){
mid = low +(upper-low)/2;
if(A[mid]<find)
low = mid+1;
else if(A[mid]>find)
upper = mid-1;
else
result = A[mid];
}
return result;
}
第17讲:指针的定义与使用
- 数据的写入与读出均与内存打交道,而指针类型就是处理内存地址的数据类型。指针不仅能提高程序的效率,而且能使一个函数访问另一个函数的局部变量,因此指针是函数进行数据交换必不可少的工具。
- 程序中的数据对象在生命周期内总是占用一定的存储空间,有确定的存储位置。按对象名称存取对象为直接访问,通过指针存取对象为间接访问。
- 由于指针的特殊性,指针的初始化和赋值是受一定约束的,只能是以下四种值:
int a, z=0;
int *p1=a;
p1 = z;
p1 = 4000;