c语言中如何给二维数组初始化赋值
时间: 2024-12-23 12:01:46 浏览: 8
在 C 语言中,二维数组的初始化可以按照行或者列的方式进行。以下是两种常见的初始化方式:
1. **按行初始化**:
```c
int arr[3][4] = {
{1, 2, 3, 4}, // 第一行
{5, 6, 7, 8}, // 第二行
{9, 10, 11, 12} // 第三行
};
```
这里,`arr`是一个3x4的二维数组,每一对花括号内的元素代表一行。
2. **使用循环**:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main() {
int arr[ROWS][COLS];
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
arr[i][j] = i * COLS + j + 1;
}
}
// 打印数组元素验证
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
这里使用了嵌套循环,给每个位置赋予递增的数值,形成一个典型的数独阵列。
相关问题
C语言二维数组初始化赋值
在C语言中,二维数组是一种存储多个一维数组的结构,它的每个元素都是一个包含多个元素的一维子数组。初始化二维数组的方式有多种:
1. **直接分配内存并手动填充**:
```c
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
```
这里创建了一个3行4列的二维数组,并分别给每个子数组初始化了值。
2. **使用循环**:
```c
#define ROWS 3
#define COLS 4
int arr[ROWS][COLS];
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
arr[i][j] = i * COLS + j;
}
}
```
通过嵌套循环,可以生成一个对角线初始化的效果。
3. **使用memset函数**:
```c
#include <string.h>
int arr[3][4];
memset(arr, 0, sizeof(arr)); // 初始化所有元素为0
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
arr[i][j] = i * COLS + j;
}
}
```
先用memset将整个数组置零,然后逐个元素赋值。
C语言如何实现二维数组初始化
C语言中,可以通过以下方式进行二维数组的初始化:
1. 使用静态初始化:在定义数组时,直接为其赋初值。
例如:
```c
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
```
上述代码定义了一个2行3列的二维数组,并将其初始化为:
```
1 2 3
4 5 6
```
2. 使用循环初始化:使用双重循环为数组元素逐个赋值。
例如:
```c
int arr[2][3];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
arr[i][j] = i * 3 + j + 1;
}
}
```
上述代码定义了一个2行3列的二维数组,并将其初始化为:
```
1 2 3
4 5 6
```
需要注意的是,定义数组时也可以只初始化部分元素,未被初始化的元素会被自动赋值为0。例如:
```c
int arr[2][3] = {{1, 2}, {4, 5}};
```
上述代码定义了一个2行3列的二维数组,并将其初始化为:
```
1 2 0
4 5 0
```
阅读全文