c語言二維char數組怎麼初始化
1 有兩種方法
(1)在定義時可以直接賦值來初始化
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數組初始化:
一:分行進行初始化
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”}