#include<stdio.h> 
#include<string.h>
int main(){
char a[8]="abcdef",b[8],p=a+3;
while(--p>=a){
strcpy(b,a);
}
printf("%d",strlen(b));
return 0;
}


结果为 6

因为: p=a+3  a为数组的首地址不是 数组元素的首地址,所以+3 实际上跨越了 多个地址空间解释为:sizeof(a)+3

= a[6]+3

知识点:

a: 数组首地址

&a : 数组元素首地址

&a【0】:数组元素首地址