这段程序怎么理解啊?
#include <stdio.h>void main(){
int a={1,2,3,4,5};
13
int * p = (int *)(&a+1);
printf(“%d”,p[-1]);
}
那么,输出结果为5
请前辈帮忙分析一下。 #include <stdio.h>
void main(){
int a={1,2,3,4,5};
13
int * p = (int *)(&a+1)-1;
printf(“%d”,*p);
}
指向数组的指针+1,再普通指针减一 没有理解,希望高人能给个通俗的讲解, #include <stdio.h>
void main(){
int a={1,2,3,4,5};
13
int * p = (int *)(&a+1);
printf(“%d”,p[-1]);
}
中间那个13是什么来的? 13,会不会是0xd,换行? int * p = (int *)(&a+1);//指针P已经指向了&a
p[-1] 就是a = 5
页:
[1]