指针、数组、首元素地址、数组地址
数组名a:
1、大部分时间当作指针数组名=常量指针
2、不当指针sizeof运算时
3、不当指针做&运算时
int a[] = { 1,2,3,4 };
int* p = a;//数组的首地址指针p指向数组a
int* arrayAddress = &a;//指针arrayAddress指向数组的地址
//上边两句输出地址为同值,一个为首元素地址,一个为数组地址
printf("%d",*p);
printf("数组a首元素地址%p\n", a);
printf("数组a的地址%p\n", &a);
printf("%p\n", a); // 006FFB04
printf("%p\n", a+1); // 006FFB08首元素偏移+4byte/a+sizeof(*array)
printf("%p\n", &a); // 006FFB04
printf("%p\n", &a + 1); // 006FFB14数组偏移+4*4byte/a+sizeof(*&array)
结论:a代表首元素地址,&a代表数组地址