C++二维数组与字符数组实战指南

张开发
2026/4/12 9:54:20 15 分钟阅读

分享文章

C++二维数组与字符数组实战指南
一、二维数组表格 / 矩阵结构1. 概念一维数组一组线性数据二维数组数组的数组可以理解成多行多列表格下标规则数组名[行下标][列下标]下标均从 0 开始2. 定义与初始化// 1. 标准完整初始化推荐可读性高 int arr[2][3] { {1, 2, 3}, // 第0行 {4, 5, 6} // 第1行 }; // 2. 简写初始化不推荐可读性差 int arr[2][3] {1,2,3,4,5,6}; // 3. 部分初始化未赋值元素默认为0 int arr[2][3] {{1}, {4}}; // 4. 省略行数不可省略列数 int arr[][3] {1,2,3,4,5,6};3. 访问元素cpp运行// 访问第0行第2列 cout arr[0][2]; // 输出 34. 遍历双层 for 循环外层循环控制行内层循环控制列#include iostream using namespace std; int main() { int arr[2][3] { {1, 2, 3}, {4, 5, 6} }; // 遍历二维数组 for (int i 0; i 2; i) { // 遍历行 for (int j 0; j 3; j) { // 遍历列 cout arr[i][j] \t; } cout endl; } system(pause); return 0; }运行结果plaintext1 2 3 4 5 6 请按任意键继续...5. 通用求行列数int totalBytes sizeof(arr); // 数组总字节数 int rowBytes sizeof(arr[0]); // 一行的字节数 int rows totalBytes / rowBytes; // 行数 int cols rowBytes / sizeof(int); // 列数二、字符数组C 风格字符串1. 概念C 中早期字符串实现以\0结束符结尾的字符数组\0是字符串结束标志cout输出时遇到\0停止。2. 定义方式// 方式1直接用字符串常量自动补 \0 char str1[] hello; // 方式2逐个字符定义必须手动加 \0 char str2[] {h,e,l,l,o,\0};3. 输入与输出char str[20]; cout 请输入字符串; cin str; // 输入不能含空格空格会截断 cout 你输入的是 str endl;4. 注意事项字符数组长度要预留 1 字节给\0没有\0会输出乱码不能直接用给字符数组赋值三、实战案例案例 1二维数组求所有元素和int arr[2][3] {{1,2,3},{4,5,6}}; int sum 0; for (int i 0; i 2; i) { for (int j 0; j 3; j) { sum arr[i][j]; } } cout 总和 sum endl; // 21案例 2简单字符数组使用char str[] test123; cout 字符串 str endl; cout 第2个字符 str[1] endl; // e四、高频易错点二维数组下标越界、行列下标写反循环条件写成i rows导致越界字符数组缺少\0出现乱码直接用对数组整体赋值语法错误cin读取带空格字符串被截断五、今日重点总结二维数组适合表格 / 矩阵数据用双层 for 循环遍历下标从 0 开始严禁越界访问字符数组必须以\0结尾才是合法字符串数组不能整体赋值只能逐个元素操作求行列长度用sizeof通用计算代码更健壮

更多文章