有没有大神能帮我解释下,每个选项等于多少,为什么,跪求!!
2个回答
展开全部
排列方式: a[0][0],a[0][1],a[0][2],a[0][3],a[1][0],a[1][1],a[1][2],a[1][3]...........
a[1][2]=7
A *pt看成a[0], *pt+1就是 a[1], (*pt+1)[2] 就是a[1][2], 但是再加上* 就错了
B *p={1,2,3,4} , p是首地址, +5 就越界了
C 同A,a[1]+2不是数字是地址
D 第一行第二列这个地址上的数,就是a[1][2]
a[1][2]=7
A *pt看成a[0], *pt+1就是 a[1], (*pt+1)[2] 就是a[1][2], 但是再加上* 就错了
B *p={1,2,3,4} , p是首地址, +5 就越界了
C 同A,a[1]+2不是数字是地址
D 第一行第二列这个地址上的数,就是a[1][2]
追问
a[1][2]不是6嘛
我想问下*p为什么等于{1,2,3,4}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请参考:
(*pt)[3] = a; //指向每行有三个整数元素的二维数组 (*pt)[0] -- (*pt)[11]
*p = a[0] ; // p指向数组a的起始地址,*p = 1, *(p+0) -- *(p+11)
A: (*pt)[3] 即 *((*pt)+3) 指向的是 4 加上*号则错了, 正确的应该为 (*pt)[5]
B: B错在加了星号,正确写法为 (*(p+5))
C: 写法错误,应该在外面加个星号,而且指向的是4,同A
D: 正确 *(*(a+1)+2) 或 a[1][2] 或 (*(a+1))[2] 或 *(a[1]+2) 或 *(&a[0][0]+3*1+2)
(*pt)[3] = a; //指向每行有三个整数元素的二维数组 (*pt)[0] -- (*pt)[11]
*p = a[0] ; // p指向数组a的起始地址,*p = 1, *(p+0) -- *(p+11)
A: (*pt)[3] 即 *((*pt)+3) 指向的是 4 加上*号则错了, 正确的应该为 (*pt)[5]
B: B错在加了星号,正确写法为 (*(p+5))
C: 写法错误,应该在外面加个星号,而且指向的是4,同A
D: 正确 *(*(a+1)+2) 或 a[1][2] 或 (*(a+1))[2] 或 *(a[1]+2) 或 *(&a[0][0]+3*1+2)
更多追问追答
追问
那个D是怎么解释的
追答
D: 正确 *(*(a+1)+2)
a[1][2] 拆分一下用指针表示(拆分行): (*(a+1))[2]
a[1][2] 拆分一下用指针表示(拆分列): *(a[1]+2)
a[1][2] 拆分一下用指针表示(拆分行列): *(*(a+1)+2)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询