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

admin2021-02-22  35

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

选项 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)+j、p+j、&p[j]
都表示数组第i+1行、第j+l列元素的地址。
值的等价形式:*(*(p+1)+j)、*+j)、p[j]
都表示数组第i+1、第j+l列元素的值。所以本题中分别访问数组元素p[0][0],p[0][1],p[0][2]。
转载请注明原文地址:https://kaotiyun.com/show/HBfp777K
0

随机试题
最新回复(0)