c语言指针数组问题选择题

img


第十题,不太理解每个选项表达的意思,为什么答案是b呢,其他选项又应该怎么理解

数组名代表的是数组的首元素地址,二维数组的首元素是第一行
*(*w+3):解引用w来到第1行,+3后来到第一行第三个元素的地址,解引用后就是w[0][3]
(w+1)[4]:w+1来到w[0][1]的位置,因为[]的优先级高于,所以先和[4]结合来到w[0][5]的位置,数组没有第六列
((w+1)):w+1得到第二行的地址,第一次解引用来到第二行,第二次解引用得到w[1][0]
*(&w[0][0]+1):得到w[0][0]的地址,+1后得到w[0][1]的地址,解引用后得到w[0][1]