第4周_数值数组_23网络2

【状态:    内部  已结束
开始时间: 2025-03-18 07:50:00
  
结束时间: 2025-03-18 10:00:00
  
服务器时间: 2025-4-4 23:15:42

简介

比赛名称: 第4周_数值数组_23网络2

比赛类型: 内部(受邀或输入密码才能参赛)

比赛状态: 已结束

比赛时间: 开始于 2025-03-18 07:50:00,至 2025-03-18 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] 应声明为全局或动态分配)。