心理

当前位置 /首页/完美生活/心理/列表

c语言二维char数组怎么初始化

c语言二维char数组怎么初始化

1 有两种方法

(1)在定义时可以直接赋值来初始化

(2)在定义后可以为其元素个个来赋值

2 示例

#include&ltstdio.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数组初始化:

一:分行进行初始化

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。

例子:char str1【6】={'h','e','l','l','o','l'}

char str1【】={“hello”}