第3天:数组与字符串
学习目标
掌握数组和字符串的使用,理解内存布局和访问方式。
学习内容
1. 数组基础
- 一维数组和多维数组
- 数组的初始化与访问
- 数组的内存布局
- 数组越界问题
2. 字符串处理
- 字符数组与字符串
- C风格字符串函数
- string类的使用
- 字符串操作方法
3. 数组作为函数参数
重点概念
数组初始化
1 2 3 4 5 6 7 8 9 10 11
| int arr1[5] = {1, 2, 3, 4, 5}; int arr2[] = {1, 2, 3, 4, 5}; int arr3[5] = {1, 2};
int matrix[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };
|
字符串操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| char str1[] = "Hello"; char str2[10] = "World";
int len = strlen(str1); strcpy(str2, str1); strcat(str1, str2); int cmp = strcmp(str1, str2);
string s1 = "Hello"; string s2 = "World"; string s3 = s1 + " " + s2; cout << s3.length() << endl;
|
数组作为参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| void printArray(int arr[], int size) { for (int i = 0; i < size; i++) { cout << arr[i] << " "; } }
void printArray(int* arr, int size) { for (int i = 0; i < size; i++) { cout << arr[i] << " "; } }
void printArray(int (&arr)[5]) { for (int i = 0; i < 5; i++) { cout << arr[i] << " "; } }
|
实践练习
练习1:数组操作
实现数组的基本操作,包括查找、排序、反转等。
练习2:字符串处理
实现字符串的基本操作,如反转、查找子串、替换等。
练习3:矩阵运算
实现二维数组的矩阵加法、乘法等运算。
常见错误与注意事项
- 数组越界:访问超出数组范围的元素
- 未初始化数组:使用未初始化的数组元素
- 字符串缓冲区溢出:写入超过数组大小的字符
- 数组参数退化:数组作为参数时退化为指针
学习检查点
返回第一周 | 上一天:函数与作用域 | 下一天:指针基础