天天看點

數組指針一道題目分享

#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 : 數組元素首位址