数组首地址和数组第一个元素的地址
#include <stdio.h>
int main()
{
int a[2][3] = {1, 2, 3, 4, 5, 6};
printf(" a = %d\n", a); //x
printf(" &a = %d\n", &a); //x
printf(" a+1 = %d\n", a+1); //x+3*sizeof(int)
printf(" &a+1 = %d\n", &a+1); //x+2*3*sizeof(int)
printf(" a[0] = %d\n", a[0]); //x
printf(" a[1] = %d\n", a[1]); //x+3*sizeof(int)
printf(" a[0]+1 = %d\n", a[0]+1); //x+sizeof(int)
printf(" a[0][0] = %d\n", a[0][0]); //1
return 0;
}
a表示第一行第一个元素的地址,第一个元素也是一个数组,&a是数组的地址,a,&a,a[0]三者值相同,但是有区别。a+1表示第二行第一个元素的地址,值和a[1]相同。&a+1表示数组的下一个位置的地址,a[0]+1表示第一行第二个元素地址。