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

#includevoidmain(){inta[5]={1,2,3,4,5};int*ptr=(int*)(includevoidmain(){\x05inta[5]={1,2,3,4,5};\x05int*ptr=(int*)(&a+1);\x05printf("%d,%d\n\n",*(a+1),*(ptr-1));}

题目详情
#include void main () { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&
#include
void main ()
{
\x05int a[5]={1,2,3,4,5};
\x05int *ptr=(int *)(&a+1);
\x05printf ("%d,%d\n\n",*(a+1),*(ptr-1));
}
▼优质解答
答案和解析
这题的关键在int *ptr=(int *)(&a+1);这一句上,&a表示取得数组a存储区域的首地址,再加1表示数组a存储区域的后的地址,这就使得ptr指针指向数组的最后一个元素后面的那个存储单元的地址,而ptr减1后,再进行数据访问,则访问的是ptr指针的前一个存储单元的值,所有最后的答案是2,5