下列程序的输出结果是( )。 #include<iostream.h> voidmain() {int n[][3]={10,20,30,40,50,60);int(*p)[3]; p=n;cout<<p[0][0]<<","<<(*[0]+1)<<

admin2021-05-06  36

问题 下列程序的输出结果是(    )。
#include<iostream.h>
voidmain()
{int n[][3]={10,20,30,40,50,60);int(*p)[3];
p=n;cout<<p[0][0]<<","<<(*[0]+1)<<","<<(*p)[2]<<endl;}

选项 A、10,30,50
B、10,20,30
C、20,40,60
D、10,30,60

答案B

解析 如果数组元素都是相同类型的指针,则称这个数组为指针数组。指针数组一般用于处理二维数组。声明的格式为:<数据类型><(*变量名)><[元素个数]>。p表示指向数组n的行指针,初始化“(*p)[3]n;”,地址的等价形式:p+i、p、*(p+i)都表示数组第i+1行的第1个元素的首地址。*(p+i)、p+j、&p[j]都表示数组第i+1行、第j+1列元素的地址。值的等价形式:*(*(p+i)+j)、*(p+j)、p都表示数组第i+1、第j+1列元素的值。所以本题中分别访问数组元素p[0][0],p[0][1],p[0][2]。
转载请注明原文地址:https://kaotiyun.com/show/mWfp777K
0

最新回复(0)