c语言数组定义

时间:2025-03-11 00:51:21 手机游戏

在C语言中,数组的定义需要指定数组的数据类型和数组的大小。以下是几种常见的数组定义方式:

一维数组的定义

声明并初始化

```c

int arr[] = {1, 2, 3, 4, 5};

```

声明并指定大小

```c

int arr;

```

部分初始化

```c

int arr = {1, 2, 3};

```

省略大小并初始化

```c

int arr[] = {1, 2, 3, 4, 5};

```

二维数组的定义

声明并初始化

```c

int matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

```

声明并指定大小

```c

int matrix;

```

动态数组的定义

使用`malloc`或`calloc`函数动态分配内存:

```c

int *dynamic_array = (int *)malloc(10 * sizeof(int));

```

注意事项:

数组的大小必须是一个常量表达式,不能是变量或表达式。

数组的索引从0开始。

数组元素在内存中是连续存储的。

示例代码:

```c

include

include

int main() {

// 声明并初始化一维数组

int arr1[] = {1, 2, 3, 4, 5};

printf("arr1: ");

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

printf("%d ", arr1[i]);

}

printf("\n");

// 声明并指定大小的一维数组

int arr2;

arr2 = 10;

arr2 = 20;

arr2 = 30;

arr2 = 40;

arr2 = 50;

printf("arr2: ");

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

printf("%d ", arr2[i]);

}

printf("\n");

// 部分初始化一维数组

int arr3 = {1, 2, 3};

printf("arr3: ");

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

printf("%d ", arr3[i]);

}

printf("\n");

// 省略大小并初始化一维数组

int arr4[] = {1, 2, 3, 4, 5};

printf("arr4: ");

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

printf("%d ", arr4[i]);

}

printf("\n");

// 声明并初始化二维数组

int matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

printf("matrix: \n");

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

for (int j = 0; j < 3; j++) {

printf("%d ", matrix[i][j]);

}

printf("\n");

}

// 动态数组

int *dynamic_array = (int *)malloc(10 * sizeof(int));

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

dynamic_array[i] = i + 1;

}

printf("dynamic_array: ");

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

printf("%d ", dynamic_array[i]);

}

printf("\n");

// 释放动态数组内存

free(dynamic_array);

return 0;

}

```

通过以上示例,你可以看到C语言中数组的多种定义和初始化方式,以及如何使用动态内存分配来创建数组