以下程序段的输出结果是()。 int a[6]={2,4,42,-2,5,90},*p1[4]={a,a+2},(*p2)[6]=&a; printf("%d,%d\n",*(*(p1+1)+1),(*(*p2+1)));
时间: 2024-04-25 13:26:34 浏览: 46
MQ-2电路图及程序
5星 · 资源好评率100%
根据定义语句,a是一个包含6个元素的int型数组,p1是一个指针数组,包含4个元素,每个元素都是一个int型指针,分别指向a[0]、a[2]、a[0]、a[2]四个元素。
而p2是一个指向数组a的指针,指向a的首地址,即&a[0]。
执行语句“*(*(p1+1)+1)”时,首先p1+1指向p1数组的第二个元素,即a+2,然后再对其解引用,得到指向a[2]元素的指针,再对其加1,即指向a[3]元素,最后再解引用,即得到a[3]的值为-2。
执行语句“(*(*p2+1))”时,首先p2解引用,得到数组a的首地址&a[0],再加上1,即指向a[1]元素,最后再解引用,即得到a[1]的值为4。
因此,该程序段的输出结果为“-2, 4”。
阅读全文