跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
C++ 一维数组
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{DISPLAYTITLE:C++一维数组}} '''C++一维数组'''是编程中最基础的数据结构之一,用于存储相同类型的多个元素。它提供了一种高效的方式来管理连续的内存空间,并通过索引访问其中的元素。本文将详细介绍一维数组的定义、初始化、访问方式以及常见操作。 == 定义与语法 == 在C++中,一维数组的定义语法如下: <syntaxhighlight lang="cpp"> 数据类型 数组名[数组大小]; </syntaxhighlight> 其中: * '''数据类型''':数组中元素的类型(如`int`、`double`、`char`等)。 * '''数组名''':数组的标识符,遵循变量命名规则。 * '''数组大小''':数组能存储的元素数量,必须是常量表达式。 例如,定义一个包含5个整数的数组: <syntaxhighlight lang="cpp"> int numbers[5]; </syntaxhighlight> == 初始化 == 数组可以在定义时初始化,也可以在后续赋值。以下是几种初始化方式: === 静态初始化 === 直接在大括号中提供初始值: <syntaxhighlight lang="cpp"> int numbers[5] = {1, 2, 3, 4, 5}; // 完全初始化 int partial[5] = {1, 2}; // 部分初始化,剩余元素为0 int autoSize[] = {1, 2, 3}; // 自动推断大小为3 </syntaxhighlight> === 动态初始化 === 通过循环或逐个赋值: <syntaxhighlight lang="cpp"> int numbers[5]; for (int i = 0; i < 5; i++) { numbers[i] = i + 1; } </syntaxhighlight> == 访问数组元素 == 数组元素通过索引访问,索引从0开始。例如: <syntaxhighlight lang="cpp"> int numbers[5] = {10, 20, 30, 40, 50}; cout << numbers[0]; // 输出10 numbers[2] = 100; // 修改第三个元素为100 </syntaxhighlight> === 边界检查 === C++不强制检查数组越界,访问非法索引可能导致未定义行为。例如: <syntaxhighlight lang="cpp"> int numbers[5] = {1, 2, 3, 4, 5}; cout << numbers[5]; // 越界访问,行为未定义 </syntaxhighlight> == 内存布局 == 一维数组在内存中是连续存储的。例如,`int arr[3] = {1, 2, 3};`的内存布局如下: <mermaid> graph LR A[arr[0]: 1] --> B[arr[1]: 2] --> C[arr[2]: 3] </mermaid> == 常见操作 == === 遍历数组 === 使用循环遍历数组是常见操作: <syntaxhighlight lang="cpp"> int numbers[5] = {1, 2, 3, 4, 5}; for (int i = 0; i < 5; i++) { cout << numbers[i] << " "; } // 输出:1 2 3 4 5 </syntaxhighlight> === 计算数组长度 === 可以通过`sizeof`运算符计算数组长度: <syntaxhighlight lang="cpp"> int numbers[] = {1, 2, 3, 4, 5}; int length = sizeof(numbers) / sizeof(numbers[0]); cout << length; // 输出5 </syntaxhighlight> == 实际应用案例 == === 案例1:统计学生成绩 === 以下程序计算学生的平均成绩: <syntaxhighlight lang="cpp"> #include <iostream> using namespace std; int main() { const int SIZE = 5; double grades[SIZE] = {85.5, 90.0, 78.5, 92.5, 88.0}; double sum = 0; for (int i = 0; i < SIZE; i++) { sum += grades[i]; } double average = sum / SIZE; cout << "平均成绩: " << average << endl; return 0; } </syntaxhighlight> 输出: <pre> 平均成绩: 86.9 </pre> === 案例2:查找最大值 === 以下程序查找数组中的最大值: <syntaxhighlight lang="cpp"> #include <iostream> using namespace std; int main() { int numbers[] = {12, 45, 67, 23, 9}; int max = numbers[0]; for (int i = 1; i < 5; i++) { if (numbers[i] > max) { max = numbers[i]; } } cout << "最大值: " << max << endl; return 0; } </syntaxhighlight> 输出: <pre> 最大值: 67 </pre> == 注意事项 == * 数组大小必须是编译时常量(C++11后可用`constexpr`)。 * 数组名是首元素的地址,例如`numbers`等价于`&numbers[0]`。 * 数组不能直接赋值或比较,需逐个元素操作。 == 数学表示 == 数组可以表示为: <math> A = [a_0, a_1, ..., a_{n-1}] </math> 其中<math>a_i</math>表示第i个元素,<math>n</math>为数组长度。 == 总结 == 一维数组是C++中基础且重要的数据结构,适用于存储和操作大量同类型数据。掌握其定义、初始化和常见操作是进一步学习更复杂数据结构的基础。 [[Category:编程语言]] [[Category:C++]] [[Category:C++ 数组]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)