>第 23 章 指针>指向数组的指针与多维数组>习题

汤云伟 xinban.do@163.com
2002-06-06 10:32:09

pa是已经指向a[1][0]的指针,所以要最终要取得a[1][2][2]的值,应该是取得指针&a[1][2][2]
而指针&a[1][2][2]在指针数组a[1][2]中
所以首先让指针pa+2,取结果*(pa+2)则指针指向指针数组a[1][2]首地址了;
然后再从指针数组中取值,*(pa+2)+2表明指针指向地址&a[1][2][2];
所以要取得a[1][2][2]的值结果应该是*((pa+2)+2)

char (*ppa)[3][2] = &a[1];
ppa是指向指针数组a[1]的指针,所以最终要取得a[1][2][2]的值,需要一层层获取指针指向的地址和值;
&a[1][2][2]存放在指针数组a[1][2]中,&a[1][2]存放在指针数组a[1]中,所以目前ppa已经指向了&a[1],那么*ppa就获得了a[1]数组中的首地址了,即指向了&a[1][0],要指向&a[1][2],那么(*ppa)+2就已经指向了a[1][2]指针数组首地址了;再指向&a[1][2][2],取得*(*ppa+2)+2,最后要取得该指针中的数值:*(*(*ppa+2)+2)


汤云伟 xinban.do@163.com
2002-06-06 10:38:32

pa是已经指向a[1][0]的指针,所以要最终要取得a[1][2][1]的值,应该是取得指针&a[1][2][1]
而指针&a[1][2][1]在指针数组a[1][2]中
所以首先让指针pa+2,取结果*(pa+2)则指针指向指针数组a[1][2]首地址了;
然后再从指针数组中取值,*(pa+2)+1表明指针指向地址&a[1][2][1];
所以要取得a[1][2][1]的值结果应该是*(*(pa+2)+1)
也可以写成(*(pa+2))[1]

char (*ppa)[3][2] = &a[1];
ppa是指向指针数组a[1]的指针,所以最终要取得a[1][2][1]的值,需要一层层获取指针指向的地址和值;
&a[1][2][1]存放在指针数组a[1][2]中,&a[1][2]存放在指针数组a[1]中,
所以目前ppa已经指向了&a[1],那么*ppa就获得了a[1]数组中的首地址
了,即指向了&a[1][0],要指向&a[1][2],那么
(*ppa)+2就已经指向了a[1][2]指针数组首地址
了;再指向&a[1][2][1],取得*(*ppa+2)+1,最后
要取得该指针中的数值:*(*(*ppa+2)+1)
也可以写成(*ppa)[2][1]


sd44 sd44sd44@yeah.net
2010-12-12 16:59:12

	printf("%c\n%c\n", (*(pa + 5))[1], (*(ppa + 1))[2][1]);

要注意别忘了指针前面的括号( 和[]前面的)。。。。。


zl 275934468@qq.com
2011-05-20 11:08:08

pa为一个指向具有两个元素的数组的指针,赋值&a[1][0]后指向{'g','h'},所以pa[5]=={'q','r'},
pa[5] [1]=='r';
同理ppa指向{{'g','h'},{'i','j'},{'k','l'}},ppa[1]=={{'m','n'}, {'o','p'},{'q','r'}},
ppa[1][2]=={'q','r'},ppa[1][2][1]=='r';


zl 275934468@qq.com
2011-05-20 11:10:14

如果说 char (*pppa)[3][2] = a; 那么结果为ppa[2][2][1];


peerben benzhemin@gmail.com
2011-09-14 15:56:38

printf("%c\n", *(*(pa+5)+1));
printf("%c\n", *(*(*(ppa+1)+2)+1));


liming epstein_2002@yahoo.com.cn
2011-11-01 16:14:55

#include <stdio.h>
int main(void)
{
    .....
    pa=&a[2][2];
    ppa=&a[2];
    printf("%c,%c\n",(*pa)[1],(*ppa)[2][1]);
}


wangzhengyi 15866883396@126.com
2011-12-02 19:28:32

两种写法:
1.pa[5][1]和ppa[1][2][1]
2.*(*(pa+5)+1)和*(*(*(ppa+1)+2)+1)


如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!