指向二维数组的指针如何定义?简略如下:int arrayA[2][3] = { {1, 2 ,3},{11,22,33}

指向二维数组的指针如何定义?
简略如下:
int arrayA[2][3] = { {1, 2 ,3},{11,22,33}};
int arrayB[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年前 已收到1个回答 举报

liujian2008 幼苗

共回答了24个问题采纳率:87.5% 举报

方案一:
int arrayA[2][3] = { {1, 2 ,3},{11,22,33}};
int arrayB[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];
}
方案二:
这种方式是定义指向二维数组的行的数组指针,列必须相同,行可以不同,所以这里要定义两个数组指针变量!
int arrayA[2][3] = { {1, 2 ,3},{11,22,33}};
int arrayB[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;
}
如果你定义的两数组列一样, 即:
int arrayA[2][5] = { {1, 2 ,3},{11,22,33}};
int arrayB[2][5] = {{5,6,7,8,9},{55,66,77,88,99}};
那么就可以:
int (*array)[5] = NULL;
if (A条件成立)
{
array = arrayA;
}
else
{
array = arrayB;
}

1年前

7
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.020 s. - webmaster@yulucn.com