一维数组操作须按声明→创建→初始化顺序进行:声明定义类型与名称但不分配内存;创建分配连续内存并设默认值;初始化赋具体值,可静态(声明/创建时完成)或动态(后续逐个赋值)。

一维数组是编程中最基础的数据结构之一,掌握它的声明、创建与初始化,是写好程序的关键第一步。三者有明确顺序:先声明变量名和类型,再创建(分配内存),最后初始化(赋初值)——有些语言允许合并步骤,但逻辑上不能颠倒。
一、声明:告诉编译器“我要一个什么类型的数组”
声明只是定义数组的类型和名字,不分配内存,也不存数据。
- C语言中写法统一:类型 数组名[大小],例如
int scores[5]; - Java中推荐写法:类型[] 名字,例如
int[] numbers;(注意方括号紧跟类型,语义更清晰) - 声明后若未创建,C中该数组名不可用;Java中变量为
null,直接使用会报空指针异常
二、创建:为数组分配连续的内存空间
创建动作实际分配内存,决定数组能存多少个元素。大小必须确定(C中要求编译期常量;Java中可用变量,但运行时固定)。
- C语言:声明时已含大小,如
int arr[8];—— 声明即创建 - Java中需显式用
new:numbers = new int[8];或合并为int[] numbers = new int[8]; - 创建后,所有元素自动获得默认值:整型为
0,浮点型为0.0,引用类型为null
三、初始化:给数组元素填上具体数值
初始化可与声明或创建同步进行(静态初始化),也可单独赋值(动态初始化)。
-
静态初始化(一步到位):
C:char name[4] = {'J', 'o', 'h', 'n'};或简写char name[] = "John";
Java:String[] fruits = {"apple", "banana", "orange"}; -
动态初始化(分步赋值):
C:for(int i = 0; i <br> Java:<code>for(int i = 0; i - 注意:C中若初始值少于数组长度,剩余元素自动补
0;Java中未显式赋值的元素仍保持默认值
四、常见误区提醒
初学者容易混淆概念或写出非法代码,这些细节直接影响程序是否能编译通过或运行正确:
- C语言不允许用变量定义数组大小(如
int n=5; int a[n];是C99变长数组,非标准兼容写法,慎用) - Java中
int[] a = new int[3];和int[] a = {1,2,3};都合法,但int[] a; a = {1,2,3};是语法错误(缺少new) - 数组下标从
0开始,最大合法索引是长度−1;越界访问在C中不检查,易导致崩溃;Java会抛出ArrayIndexOutOfBoundsException











