c語言二維char數(shù)組怎么初始化?
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 運(yùn)行結(jié)果
由結(jié)果可知,兩種方式達(dá)到的效果是一樣的
4 擴(kuò)展
由于C語言中數(shù)組中的元素的地址是連續(xù)的,所以下面的寫法也是可以的,運(yùn)行效果同上
#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;//指向數(shù)組的第一個元素
for (int i = 0; i < 2 * 3; i++){
*p++ = num++;
}
display(arr1, 2, 3);
display(arr2, 2, 3);
getchar();
return 0;
}