这个C语言程序是什么意思?指针

2024-11-27 10:26:19
推荐回答(3个)
回答1:

最后应该输入1吧,这个程序是这个意思,首先声明一个数组a,这个不用于说,然后声明一个指针数组p,这个数组指针的里面的值分别为指针a+2,a+1,a,而这三个指针的值分别指向的数分别是a[2],a[1],a[0],最后它声明一个二维指针q的值就是这个指针数组p,输出**(q+2)的值,就相当于输出*(*(q+2)),就是*(p[3]),也就是*(a),也就是1,所以输出应该是1吧

回答2:

int *p[3]={a+2,a+1,a}; p数组中存了三个地址
int **q=p; //q指向了p的首地址
*(p[0]+1) = *(a+2+1)=*(a+3)得到第四个数7

**(q+2)=*(a)=1
7+1=8

回答3:

1. *(p[0]+1) = *((a+2)+1) = *(a+3) = a[3] =7
2. **(q+2) = *(p[2]) = *(a) = a[0] = 1
3. *(p[0]+1)+**(q+2) = 7+1 = 8