*(a+1)[2] 在c语言中表示什么意思,其中a 是一个二维数组的数组名,请解

*(a+1)[2] 在c语言中表示什么意思,其中a 是一个二维数组的数组名,请解释详细

是下标为[3][0]的那个元素的值。因为[]的优先级比*高,所以*(a+1)[2]被解释为*((a+1)[2])——二维数组a中,a是第0行的第0个元素的地址,a+1自然是第1行的第0个元素的地址,(a+1)[2]实际上就是再向后移两行那一行的元素指针,可用*(a+1+2)=*(a+3)表示,所以是第3行的第0个元素的地址;那么*(a+1)[2]实质上就是**(a+3),显然,它是第3行第0个元素。比如有int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},那么*(a+1)[2]就是13。行、列下标都从0起算。供参考!
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答