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 运行结果
由结果可知,两种方式达到的效果是一样的
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
}
c语言二维char数组怎么初始化
c语言二维char数组初始化:
一:分行进行初始化
int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}}
在{}中用{}把各行分开,第一对{}中的初值是第0行,之后以此类推总体相当于执行arr[0][0] = 1, arr[0][1] = 2,此后类推
二:不分行对数组初始化
int arr[2][2] = {1,2,3,4}赋值时即为逐个赋值(先行后列)。
三:为部分数组元素初始化
static int arrr[2][3] = {{1,2},{3}}
第一行只赋值给前两个,第二行只赋值给第一个。这是存储类型是static,故其他未赋值的数组元素的初值为0。
c语言二维char数组怎么初始化
例子:char str1【6】={'h','e','l','l','o','l'}
char str1【】={“hello”}