1 有两种方法
(1)在定义时可以直接赋值来初始化
(2)在定义后可以为其元素一个个来赋值
2 示例
#include<stdio.h>
void display(int arr[2][3], int row, int col){
for (int i = 0; i < row; i++){
for (int j = 0; j < col; j++){
printf("%d ", arr[i][j]);
}
puts("");
}
puts("");
}
int main(){
//方法(1)
int arr1[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
//方法(2)
int arr2[2][3];
int num = 1;
for (int i = 0; i < 2; i++){
for (int j = 0; j < 3; j++){
arr2[i][j] = num++;
}
}
display(arr1, 2, 3);
display(arr2, 2, 3);
getchar();
return 0;
}
3 运行结果
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/a8014c086e061d95093e15737df40ad162d9ca04?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
由结果可知,两种方式达到的效果是一样的
4 扩展
由于C语言中数组中的元素的地址是连续的,所以下面的写法也是可以的,运行效果同上
#include<stdio.h>
void display(int arr[2][3], int row, int col){
for (int i = 0; i < row*col; i++){
for (int j = 0; j < col; j++){
printf("%d ", arr[i][j]);
}
puts("");
}
puts("");
}
int main(){
//方法(1)
int arr1[2][3] = { 1, 2, 3, 4, 5, 6 };
//方法(2)
int arr2[2][3];
int num = 1;
int *p = *arr2;//指向数组的第一个元素
for (int i = 0; i < 2 * 3; i++){
*p++ = num++;
}
display(arr1, 2, 3);
display(arr2, 2, 3);
getchar();
return 0;
}