int a[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
//a[0][0]的地址: &a[0][0],a[0],*a
我的理解*a为什么是指向a[0][0]的地址:
首先我们知道了a[0]是可以指向a[0][0]地址的指针,用一维的眼光看,其实arr[0]就是arr,指向的是arr[0]这个地址(一维)
其次 举一个例子:
int arr = {0,1,2};
int *p = arr;
printf("%d",*p);
上边的打印结果就是0.这就很好理解了,那既然*p就是arr[0]了,那再取 *p(arr[0]),上升到二维的话那不就是arr[0][0]了。