main() { char a[]={‘m’,'n’,'x’,'y’}; char *p=(char *)(&a+1); printf(“%c,%c”,*(a),*(p-1)); }
各位朋友:麻烦解释下面的程序,那 char *p=(char *)(&a+1); 语句是什么意思?谢谢!
#include “stdio.h”
>> 本文固定链接: http://www.vcgood.com/archives/3615
main() { char a[]={‘m’,'n’,'x’,'y’}; char *p=(char *)(&a+1); printf(“%c,%c”,*(a),*(p-1)); }
各位朋友:麻烦解释下面的程序,那 char *p=(char *)(&a+1); 语句是什么意思?谢谢!
#include “stdio.h”
>> 本文固定链接: http://www.vcgood.com/archives/3615
你必须先 登录才能发表评论。
char *p=(char *)(&a+1);这段代码的意思是&a把a[0]a[1]a[2]a[3]当作一个整体,&a是这个整体的首地址,&a+1以后就跳到a[4]了,此时&a+1表示a[4]的地址,然后很想让输出就是m,y了!