【指向二维数组的指针如何定义?简略如下:intarrayA[-查字典问答网
分类选择

来自孙哲南的问题

  【指向二维数组的指针如何定义?简略如下:intarrayA[2][3]={{1,2,3},{11,22,33}};intarrayB[2][5]={{5,6,7,8,9},{55,66,77,88,99}};现在我想定义一个变量array,当条件A成立时,array指向arrayA,当条件B成立时,array指】

  指向二维数组的指针如何定义?

  简略如下:

  intarrayA[2][3]={{1,2,3},{11,22,33}};

  intarrayB[2][5]={{5,6,7,8,9},{55,66,77,88,99}};

  现在我想定义一个变量array,当条件A成立时,array指向arrayA,当条件B成立时,array指向arrayB.

  刚才定义成双指针int**array形势,编译错误.

  我的想法是:

  if(A条件成立){

  array=arrayA;

  }else{

  array=arrayB;

  }

  然后对array[i][j]进行操作.

  该如何定义好?

1回答
2020-07-25 16:16
我要回答
请先登录
李寅东

  方案一:

  intarrayA[2][3]={{1,2,3},{11,22,33}};

  intarrayB[2][5]={{5,6,7,8,9},{55,66,77,88,99}};

  int*array=NULL;

  if(A条件成立)

  {

  array=&arrayA[0][0];

  }

  else

  {

  array=&arrayB[0][0];

  }

  方案二:

  这种方式是定义指向二维数组的行的数组指针,列必须相同,行可以不同,所以这里要定义两个数组指针变量!

  intarrayA[2][3]={{1,2,3},{11,22,33}};

  intarrayB[2][5]={{5,6,7,8,9},{55,66,77,88,99}};

  int(*array1)[3]=NULL;

  int(*array2)[5]=NULL;

  if(A条件成立)

  {

  array1=arrayA;

  }

  else

  {

  array2=arrayB;

  }

  如果你定义的两数组列一样,即:

  intarrayA[2][5]={{1,2,3},{11,22,33}};

  intarrayB[2][5]={{5,6,7,8,9},{55,66,77,88,99}};

  那么就可以:

  int(*array)[5]=NULL;

  if(A条件成立)

  {

  array=arrayA;

  }

  else

  {

  array=arrayB;

  }

2020-07-25 16:20:38

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •