跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
C 语言一维数组
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= C语言一维数组 = 一维数组是C语言中最基础的数据结构之一,它允许程序员在单个变量名下存储多个相同类型的元素,并通过索引访问这些元素。数组在内存中是连续存储的,这使得它们的访问效率非常高。理解一维数组是掌握更复杂数据结构(如多维数组、链表等)的重要基础。 == 定义与声明 == 在C语言中,一维数组的声明语法如下: <syntaxhighlight lang="c"> 数据类型 数组名[数组大小]; </syntaxhighlight> 其中: * '''数据类型''':数组中元素的类型,如<code>int</code>、<code>float</code>、<code>char</code>等。 * '''数组名''':数组的标识符,遵循变量命名规则。 * '''数组大小''':一个整数常量,表示数组可以存储的元素数量。 例如,声明一个包含5个整数的数组: <syntaxhighlight lang="c"> int numbers[5]; </syntaxhighlight> == 初始化 == 数组可以在声明时初始化,也可以在后续代码中逐个赋值。 === 声明时初始化 === <syntaxhighlight lang="c"> int numbers[5] = {1, 2, 3, 4, 5}; // 完全初始化 int partial[5] = {1, 2}; // 部分初始化,剩余元素自动初始化为0 int autoSize[] = {1, 2, 3}; // 自动推断数组大小为3 </syntaxhighlight> === 运行时赋值 === <syntaxhighlight lang="c"> int numbers[5]; numbers[0] = 10; numbers[1] = 20; // 其他元素未初始化,值为未定义(可能是垃圾值) </syntaxhighlight> == 访问数组元素 == 数组元素通过索引访问,索引从0开始,到<code>数组大小-1</code>结束。例如: <syntaxhighlight lang="c"> int numbers[3] = {10, 20, 30}; printf("%d", numbers[1]); // 输出: 20 </syntaxhighlight> == 内存布局 == 一维数组在内存中是连续存储的。例如,<code>int arr[3] = {10, 20, 30};</code>的内存布局如下: <mermaid> graph LR A[arr[0]: 10] --> B[arr[1]: 20] --> C[arr[2]: 30] </mermaid> == 实际案例 == === 案例1:计算数组元素的和 === <syntaxhighlight lang="c"> #include <stdio.h> int main() { int numbers[] = {5, 10, 15, 20, 25}; int sum = 0; for (int i = 0; i < 5; i++) { sum += numbers[i]; } printf("Sum: %d\n", sum); // 输出: Sum: 75 return 0; } </syntaxhighlight> === 案例2:查找数组中的最大值 === <syntaxhighlight lang="c"> #include <stdio.h> 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]; } } printf("Max: %d\n", max); // 输出: Max: 67 return 0; } </syntaxhighlight> == 常见错误与注意事项 == 1. '''越界访问''':访问超出数组范围的索引会导致未定义行为。 <syntaxhighlight lang="c"> int arr[3] = {1, 2, 3}; printf("%d", arr[5]); // 错误:越界访问 </syntaxhighlight> 2. '''未初始化数组''':如果数组未初始化,其元素的值是未定义的(可能是垃圾值)。 <syntaxhighlight lang="c"> int arr[3]; printf("%d", arr[0]); // 值未定义 </syntaxhighlight> 3. '''数组大小必须为常量''':在标准C中,数组大小必须是编译时常量。 <syntaxhighlight lang="c"> int size = 5; int arr[size]; // 错误(除非使用C99的变长数组) </syntaxhighlight> == 数学表示 == 一维数组可以表示为: <math> A = [a_0, a_1, a_2, \ldots, a_{n-1}] </math> 其中<math>a_i</math>表示第<math>i</math>个元素,<math>n</math>为数组大小。 == 总结 == 一维数组是C语言中存储同类型数据的有效方式。通过索引可以快速访问元素,而其连续内存布局也使得操作高效。掌握一维数组是学习更高级数据结构的基础。 [[Category:编程语言]] [[Category:C]] [[Category:C 语言数组]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)