请C语言高手帮忙解决一下以下问题,还请简单解释一下

来源:百度知道 编辑:UC知道 时间:2024/06/21 22:48:09
判断下列表达式的级数,哪些是非法的,哪些能表示具体的值?
1.*q+1 *(q+1) (*(*q+1)+1) *((*q+1)+1)
2.*a+1 *(a+1) (*(*a+1)+1) *((*a+1)+1)
3.*a[1] *(a[1]+1) *(p[1]+1) *p+2
4.*p[1] *b[2] **q *p+5
解释的详细的有加分,谢谢了!~
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},b[4]={1,3,5,7},*p=b,**q=a;
不好意思上次打掉了,这次补充完整了!~

a是二维数组名,b是一维数名,p上指向int的指针,q是指向(指向int的指针)的指针。
*q+1 = *a+1 = a[0]+1 = &a[0][0]+1 = &a[0][1]
*(q+1) = *(a+1) = a[1] = &a[1][0]
*(*q+1)+1 = *(*a+1)+1 = *(&a[0][1])+1 = a[0][1]+1 = 3+1 = 4
*((*q+1)+1) = *((*a+1)+1) = *(&a[0][1]+1) = *(&a[0][2]) =a[0][2] =5

*a[1] = a[1][0] = 9
*(a[1]+1) = *(&a[1][0]+1) = *(&a[1][1]) = a[1][1] = 11
*(p[1]+1) = *(b[1]+1) = *(3+1) = *4 错误
*p+2 = *b+2 = b[2] = 5

*p[1] = *b[1] = *3 错误
*b[2] = *5 错误
**q = **a = *a[0] = a[0][0] = 1
*p+5 = *b +5 = b[0] +5 = 1+5 =6