C++数组

什么是数组?

数组是一种基本的数据结构,它允许程序在内存中连续存储一组相同类型的数据项。数组中的每个数据项都被称为一个元素,可以通过索引来访问这些元素,索引是从0开始递增的整数。

定义数组

在C++中,数组可以这样定义:

type arrayName[arraySize];

type 是数组中元素的数据类型(类似于 int char 等)

arrayName 是数组的名称

arraySize必须是一个正整数,表示数组中元素的数量

示例

以下是一个简单的一维数组定义的例子:

int numbers[5]; // 定义一个包含5个整数的数组

初始化数组

数组也可以在声明时初始化,例如:

int scores[] = {90, 85, 70, 65, 50};

// 声明并初始化数组

这里,我们没有指定数组的大小,编译器会根据初始化列表的长度自动推断出数组的大小。

访问数组元素

数组元素可以通过索引来访问,索引是从0开始的。例如,要访问上述 `scores` 数组的第一个元素,我们可以这样做:

cout << "First score: " << scores[0] << endl;

// 输出第一个元素

动态数组

在某些情况下,可能需要在运行时确定数组的大小。这时,可以使用指针和 `new` 关键字来创建动态数组:

int size;

cout << "Enter the size of the array: ";

cin >> size;

int *dynamicArray = new int[size];

// 填充数组

for (int i = 0; i < size; ++i) {

cout << "Enter element " << i + 1 << ": ";

cin >> dynamicArray[i];

}

// 使用数组

for (int i = 0; i < size; ++i) {

cout << "Element " << i + 1 << ": " << dynamicArray[i] << endl;

}

// 释放内存

delete[] dynamicArray;

应用场景

数组广泛应用于各种场景中,包括但不限于:

**游戏开发:**用于存储玩家分数或关卡数据。

**科学计算:**存储实验数据或数学计算的结果。

**数据库管理:**作为临时数据结构存储记录。

**图像处理:**二维数组常用于表示图像像素。


下面是一个完整的示例程序,展示了如何定义和使用数组并计算数组中五个数的平均值:

#include <iostream>

using namespace std;

int main() {

int scores[5] = {90, 85, 70, 65, 50};

int sum = 0;

// 遍历数组并计算总分

for (int i = 0; i < 5; ++i) {

cout << "Score " << i + 1 << ": " << scores[i] << endl;

sum += scores[i];

}

// 输出平均分

cout << "Average Score: " << static_cast<double>(sum) / 5 << endl;

return 0;

}

相关推荐
ZTLJQ3 小时前
序列化的艺术:Python JSON处理完全解析
开发语言·python·json
2401_891482174 小时前
多平台UI框架C++开发
开发语言·c++·算法
H5css�海秀4 小时前
今天是自学大模型的第一天(sanjose)
后端·python·node.js·php
SuniaWang4 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
韩立学长4 小时前
Springboot校园跑腿业务系统0b7amk02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
sheji34164 小时前
【开题答辩全过程】以 基于springboot的扶贫系统为例,包含答辩的问题和答案
java·spring boot·后端
88号技师4 小时前
2026年3月中科院一区SCI-贝塞尔曲线优化算法Bezier curve-based optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
t198751284 小时前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
无敌昊哥战神4 小时前
【LeetCode 257】二叉树的所有路径(回溯法/深度优先遍历)- Python/C/C++详细题解
c语言·c++·python·leetcode·深度优先
㓗冽4 小时前
8皇后·改-进阶题16
数据结构