题目
指向二维数组的指针如何定义?
简略如下:
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] 进行操作.
该如何定义好?
简略如下:
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] 进行操作.
该如何定义好?
提问时间:2020-11-18
答案
方案一:
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;
}
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;
}
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
- 1Only time can tell how valuable love
- 2已知两个多边形的内角和为1440°,且两多边形的边数比为1:3,求这两个多边形的边数.
- 31/a+1/b+1/c+1/d+1/e=1 求a,b,c,d,利用公式:1/n=1/n+1,+1/n(n+1)
- 4某商场原计划以1500元出售甲乙两种商品,通过调整价格,甲提价20%,乙降价30%后,实际以1600元售出,甲商实际售价是多少元?
- 5he rushed out of the room,( ) A.cried B for crying c crying d cries
- 6英语翻译
- 7怎样求命题的反面?
- 8CuSO4,Ba(OH)2,Na2SO4,NaCl在不用任何试剂的情况下,就能鉴别出的顺序是?
- 9抛物线y2=10x的焦点到准线的距离是( ) A.52 B.5 C.152 D.10
- 10deacetyl-7-aminocephalosporanic acid 的汉语意思?
热门考点
- 1为什么cos[π+(2/3π+ɑ)]=-cos(2/3π+ɑ),急,利用公式说明一下.
- 2Oh.She usually---------(dance)after school.
- 3关于X的不等式2|log以2为底X的对数|+a≥0 对任意的X∈(0,+∞)总成立,求a的取值范围
- 4造句酝酿 婉转 应和 烘托
- 5质量为m的子弹以v0速度击中静止于光滑水平面上的木块M,子弹在木块中所受平均阻力为f,射穿木块后子弹速度为v1求1.木块获得的速度2.系统损失的机械能(木块长L木块的位移为S)
- 6You can travel by underground or maglev .______ ,there is an underground around the city .
- 71,一袋糖有10粒,每个人吃0.1袋,15个人合起来吃掉多少粒糖?32个人呢?
- 8在rt三角形abc中cd是斜边ab上的高s△cad=3s△cbd则ab:ac=
- 9用一把没有刻度的尺和一把圆规怎样才能画出一个正十七边形
- 10laws of england and wales