A 取b第三行首元素地址 C* q[]是指针数组,q[2]可以存地址, D p那个是数组指针,可直接存地址。B 错,是取了越界地址,非法访问b是首元素,+2跨越两个b这样大的二维数组的内存空间
A[B] *(A+B) *(B+A) B[A] //以上四行等价 "abc"[1] *("abc"+1) *(1+"abc") 1["abc"] //以上四行等价 A[0] *(A) 0[A] //以上三行等价