作业帮 > 数学 > 作业

已知static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;求*(p

来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/18 07:02:38
已知static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;求*(p[0]+1)+**(q+2)
这个怎么理解,回答要详细一点
已知static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;求*(p
*p[]={a+3,a+2,a+1,a},是定义一个指针数组也就是说指针数组p里面放的是
a[3],a[2],a[1],a[0]的地址
**q=p;定义了一个二级指针q
*(p[0]+1):p[0]就是a+3,p[0]+1就等于a+3等于a+4...*(p[0]+1)等于a[4]
**(q+2):q+2相当于p+2就是a+1,*(q+2)相当于p[2],..**(q+2)相当于a[1]
结果就是a[4]+a[1]
说的有点乱不知你能听明白不
再问: 前面数组定义的我都知道,就是你后面两句写得我看不懂。p[0]+1怎么就等于a+4了?难道是本身p[0]=a+3,所以p[0]+1=a+3+1=a+4? 要不你什么时候有空?我下午下课回来你在YY给我讲解一下?
再答: 首先你要明白p是一个数组,还要明白它是一个指针数组,什么叫指针数组?就是数组存放的都是指针。然后你还要明白指针就是地址,那么p[0]的值就是a+3,也就是a[3]的地址,现在应该能明白吧