看完还不会指针砍死作者系列④——指针、数组、首元素地址、数组地址

指针、数组、首元素地址、数组地址

数组名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代表数组地址

你可能感兴趣的:(看完还不会指针砍死作者系列④——指针、数组、首元素地址、数组地址)