已知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)
这个怎么理解,回答要详细一点
这个怎么理解,回答要详细一点
*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]的地址,现在应该能明白吧
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]的地址,现在应该能明白吧
已知static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;求*(p
.已知static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p,则表达
C语言:static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;则表
设有说明”static int a [3][3]={{1},{4,5},{7,8,9}},*p=a[2];”,则*(p-
已知static int a[3][4]; int *p;则下列语句不合理的是( ) A、p=a; B、p=a[0];
、已知static int a[3][4]; int *p;则下列语句不合理的是( ) A、p=a; B、p=a[0];
设定义了说明语句:static int a[2][4]={1,2,3,4,5,6,7,8},(*p)[4]=a+1;则p
int a[]={1,3,5,7}; int*p[3]=(a+2,a+1,a); int **q=p; printf("
{ int a[]={1,2,3,4,5,6}; int*p; p=a; printf("%d\n",*p); prin
int a[3][5]={{1,2},{6,4},{3,4,5}}; int (*p)[5] = a; 求*(*p+1)
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int **p; p=(int**)a;
int a[2][3]={0,1,2,3},*p; p=&a[2]; *--p