# include <stdio.h>
int main(void)
{
int a[3][4] = {{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 10, 11}};
printf("%0x\n", a);
printf("%0x\n", a+1);
printf("%0x\n", a+2);
printf("\n");
printf("%0x\n", *a);
printf("%0x\n", *(a+1));
printf("%0x\n", *(a+2));
printf("\n");
printf("%0x\n", a[0]);
printf("%0x\n", a[1]);
printf("%0x\n", a[2]);
printf("\n");
printf("%0x\n", &a[0]);
printf("%0x\n", &a[1]);
printf("%0x\n", &a[2]);
printf("\n");
printf("%0x\n", &a[0][0]);
printf("%0x\n", &a[1][0]);
printf("%0x\n", &a[2][0]);
printf("\n");
printf("%0x\n", *a+1);
printf("%0x\n", *a+2);
printf("%0x\n", *a+3);
printf("\n");
printf("%0x\n", *(a+1)+1);
printf("%0x\n", *(a+1)+2);
printf("%0x\n", *(a+1)+3);
printf("\n");
printf("%0x\n", *(a+2)+1);
printf("%0x\n", *(a+2)+2);
printf("%0x\n", *(a+2)+3);
printf("\n");
printf("%0x\n", a[0]+1);
printf("%0x\n", a[0]+2);
printf("%0x\n", a[0]+3);
printf("\n");
printf("%0x\n", a[1]+1);
printf("%0x\n", a[1]+2);
printf("%0x\n", a[1]+3);
printf("\n");
printf("%0x\n", a[2]+1);
printf("%0x\n", a[2]+2);
printf("%0x\n", a[2]+3);
printf("\n");
printf("%0x\n", &a[0][1]);
printf("%0x\n", &a[0][2]);
printf("%0x\n", &a[0][3]);
printf("\n");
return 0;
}
/*
* a,a+1,a+2 a[0],a[1],a[2] *a,*(a+1),*(a+2)
* &a[0],&a[1],&a[2] &a[0][0],&a[1][0],&a[2][0]
* 表示的都是每一行元素的首地址
* *a+1,*a+2,*a+3 *(a+1)+1,*(a+1)+2,*(a+1)+3 *(a+2)+1,*(a+2)+2,*(a+2)+3
* a[0]+1,a[0]+2, a[0]+3 a[1]+1,a[1]+2,a[1]+3 a[2]+1,a[2]+2,a[2]+3
* 表示的是首元素之后的几个元素的地址
*
*
*/
运行结果: