
2个回答
展开全部
本来不想答的,因为想深了自己也不太清楚,怕误导了楼主。可是1楼答错了,还是纠正一下吧。
*(a+i)[j] 不是a[i][j],根据优先级,[]和()都排在*的前面,所以实际上本式等价于下式:
*( (a+i)[j] ) 经测试,这个式子等于 *a[i+j] == a[i+j][0],不知道为什么。
a[i][j]其实等价于 ( *(a+i) )[j],恰恰是优先级的问题,造成了1楼的失误。
*(a+3*i+j) 等价于a[3*i+j],没有问题,因为a是二维数组,所以a[3*i+j]是一个一维数组,形象地看,就是二维数组的第(3*i+j)行,注意头一行是第0行。
楼主掌握一个公式:p[i] == *(p + i)就行了,最多就是正着用、反着用,再嵌套着用。
*(a+i)[j] 不是a[i][j],根据优先级,[]和()都排在*的前面,所以实际上本式等价于下式:
*( (a+i)[j] ) 经测试,这个式子等于 *a[i+j] == a[i+j][0],不知道为什么。
a[i][j]其实等价于 ( *(a+i) )[j],恰恰是优先级的问题,造成了1楼的失误。
*(a+3*i+j) 等价于a[3*i+j],没有问题,因为a是二维数组,所以a[3*i+j]是一个一维数组,形象地看,就是二维数组的第(3*i+j)行,注意头一行是第0行。
楼主掌握一个公式:p[i] == *(p + i)就行了,最多就是正着用、反着用,再嵌套着用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询