早教吧 育儿知识 作业答案 考试题库 百科 知识分享

数组和数组第一个元素地址# include int main(void){x05char a[] = "fdgrgherht";char *p = &a[0];x05printf(" %p ",p);x05printf(" %p",a[0]);x05p = a;x05printf(" %p",p);x05printf(" %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]地址应该是一样的,这个怎么解释
▼优质解答
答案和解析
printf(" %p",a[0]);
这个打印的是数组a第一个元素的值,也就是 'f',并不是a[0]的地址,要打印a[0]的地址应该写成
printf(" %p",&a[0]);