69,372
社区成员
发帖
与我相关
我的任务
分享
a是数组名, *a 是指向数组的指针,指针指向的是这个数组的首地址。
&a 和 &a[0] 也是这个数组的首地址。
一个意思。所以值是一样的。
#include <stdio.h>
int main(int argc, char *argv[])
{
char a[20];
printf("%p\n", a);
printf("%p\n", a + 1);
printf("%p\n", &a[0]);
printf("%p\n", &a[0] + 1);
printf("%p\n", &a);
printf("%p\n", &a + 1);
return 0;
}
#include <stdio.h>
int main(void)
{
char array[20];
char (*p)[20];
p = &array;
printf("%p\n", array);
printf("%p\n", p);
printf("%p\n", &p);
return 0;
}
a[20];
&a - pointer to array of char, the array has 20 member
a - array of char
&a[0] - pointer to char