无法理解c中的2d数组中的寻址

min*_*eld 3 c arrays 2d

main()
{
    int a[3][2] = { {1,2},{3,4},{5,6}};
    for(int i=0;i<3;i++)
        for(int j=0;j<2;j++)
    {
        printf("%d", a[i][j]);
        printf("\t %d\n", &a[i][j]);
    }
    printf("\n%d", *(a+1));
    printf("\n%d", *a+1);
}
Run Code Online (Sandbox Code Playgroud)

*(a + 1)的输出与*a + 1不同.

*(a + 1)指向第3个元素而

*a + 1输出第二个值

Ed *_* S. 6

*(a + 1)的输出与*a + 1不同.

是的,由于运营商的优先权. *a + 1手段...

取消引用a(返回一个int)并添加1到它.返回结果(2)

不过,*(a + 1)说......

添加1指针 a并取消引用它,即获取地址处的值a + sizeof(int[2]).

"值*恰好是第二个数组的第一个元素.记住; 在指针类型中添加n会使地址前进n个元素.在这种情况下,每个元素都是一个int包含两个元素的数组.

那也应该回答接下来的两个问题.在读取运算符优先级后,开始研究指针运算.