数组和数组第一个元素地址# include int main(void){\x05char a[] = "fdgrgherht";char *p = &a[0];\x05printf("\n %p\n",p);\x05printf(" %p",a[0]);\x05p = a;\x05printf("\n %p",p);\x05printf("\n %p",a);\x05return 0;}/*----------------------------

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 16:56:05

数组和数组第一个元素地址# include int main(void){\x05char a[] = "fdgrgherht";char *p = &a[0];\x05printf("\n %p\n",p);\x05printf(" %p",a[0]);\x05p = a;\x05printf("\n %p",p);\x05printf("\n %p",a);\x05return 0;}/*----------------------------
数组和数组第一个元素地址
# include
int main(void)
{
\x05char a[] = "fdgrgherht";
char *p = &a[0];
\x05printf("\n %p\n",p);
\x05printf(" %p",a[0]);
\x05p = a;
\x05printf("\n %p",p);
\x05printf("\n %p",a);
\x05return 0;
}
/*
--------------------------------
0012FF3C
00000066
0012FF3C
0012FF3C
--------------------------------
*/
按照我的理解是打印出第一行p地址和打印出第二行a[0]地址应该是一样的,这个怎么解释

数组和数组第一个元素地址# include int main(void){\x05char a[] = "fdgrgherht";char *p = &a[0];\x05printf("\n %p\n",p);\x05printf(" %p",a[0]);\x05p = a;\x05printf("\n %p",p);\x05printf("\n %p",a);\x05return 0;}/*----------------------------
printf(" %p",a[0]);
这个打印的是数组a第一个元素的值,也就是 'f',并不是a[0]的地址,要打印a[0]的地址应该写成
printf(" %p",&a[0]);