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

admin2013-02-23  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)

答案4

解析 本题综合考查一维数组和多维数组指针变量的表示方法。在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]分别指向B个整型变量a,b,c。注意:数组元素的引用方法。
转载请注明原文地址:https://kaotiyun.com/show/72Jp777K
0

最新回复(0)