比赛名称: 第4周_数值数组_23网络1
比赛类型: 内部(受邀或输入密码才能参赛)
比赛状态: 已结束
比赛时间: 开始于 2025-03-19 07:50:00,至 2025-03-19 10:00:00结束。
本次OJ评测的主要目的是检验考生对数值型数组的应用,包括一维数组和二维数组。基本内容如下:
1. 基础概念
(1)数组定义:连续内存空间存储相同类型数据元素
(2)索引规则:从0开始的连续下标访问(注意边界问题)
(3)初始化方式:
int arr[5] = {1,2,3}; // 部分初始化,剩余元素自动补0
int matrix[3][3] = {{1,2},{3}}; // 二维数组初始化
2. 核心操作
(1)遍历方式:单层循环(一维)、嵌套循环(多维)
(2)元素操作:随机访问、批量赋值、最值查找
(3)内存管理:静态数组与动态内存分配(C/C++的malloc/new)
3. 注意事项
(1)内存与越界访问
静态数组:预先估算数据规模,避免栈溢出(如 int arr[1e6] 可能导致栈溢出,需改用堆内存)。
动态数组:C/C++中确保 malloc/new 和 free/delete 配对使用,防止内存泄漏。
索引越界:循环时注意终止条件(如 for(int i=0; i<=n; i++) 会导致越界),可通过“左闭右开”习惯减少错误。
(2)初始化问题
默认值陷阱:局部数组未初始化时值为随机数(C/C++),全局数组默认初始化为0,需显式初始化避免脏数据。
部分初始化:如 int arr[5] = {1,2},剩余元素自动补0,但依赖此特性时需明确说明。
(3)全局变量:避免在栈上分配大数组(如 int arr[1e6] 应声明为全局或动态分配)。