若有下面的程序片段: int[12]={0},*p[3],**pp,i; for(i=0;i

admin2013-06-11  29

问题 若有下面的程序片段:
int[12]={0},*p[3],**pp,i;
for(i=0;i<3;i)
p=&a[i*4];
pp=p;
则对数组元素的错误引用是

选项 A、pp[0][1]
B、a[10]
C、p[3][1]
D、*(*(p+2)+2)

答案C

解析 考查指向数组的指针。本题综合考查一维数组和多维数组指针变量的表示方法。在C语言中,引用数组元素的方法有两种,即下标法和指针法。下标法如a形式;指针法如*(a+i)或*(p+1)。其中,a是数组名,p是指向数组的指针变量,其初值p=a。再如*(*(p+2)+2)是a[2][2]的值,注意语句中指针型数组的书写格式,不能写成"(*数组名)[长度]",因为这是定义指向含有"长度"个元素的一维数组的指针变量。例如有定义语句"int a,b,c,c,*p[3]={&a,&b,&c};",它定义了一个名为p的指针型数组,其3个元素p[0],p[1],p[2]分别指向f3个整型变量a,b,c。
转载请注明原文地址:https://jikaoti.com/ti/KGn0FFFM
0

最新回复(0)