#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】:数组元素首地址