c语言二维数组如何初始化为0

编程语言及工具

99人已加入

描述

  c语言二维数组如何初始化

  1 有两种方法

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

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

  2 示例

  1234567891011121314151617181920212223242526272829#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语言中数组中的元素的地址是连续的,所以下面的写法也是可以的,运行效果同上

  12345678910111213141516171819202122232425262728#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二维数组初始化为0的2种实现方式

  1 #include 《stdio.h》

  2 #include 《stdlib.h》

  3 #include 《string.h》

  4 int main()

  5 {

  6 //char a[2][4] ;

  7 char a[2][4] = {0} ;

  8 char *b =a[0];

  9 for (int i=0; i《8; i++)

  10 {

  11 printf(“%d ”, *(b+i));

  12 }

  13 printf(“\n------------\n”);

  14 //memset(a,0x0, sizeof(a));

  15

  16 for (int i=0; i《8; i++)

  17 {

  //printf(“%d”, b[i]);

  //printf(“%d”, a[i]); //这个是错的输出结果,原因是这个时候a的类型是二维指针,编译器的解析不是我们想象的那个样子!

  //它输出的是那一行的数据,

  18 printf(“%d ”, *(b+i));

  19 }

  20 }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分