數組中,a爲數組的首地址,&a[0]爲數組第一個元素的地址。數組
因此 a == &a[0]測試
可是,&a又是什麼東西呢?spa
咱們來作下面的代碼測試:指針
#include <stdio.h> void main(void){ int a[5] = {0}; printf("a---------->%p\n", a); printf("&a--------->%p\n", &a); printf("&a[0]------>%p\n", &a[0]); printf("\nafter changed\n\n");
printf("a+1-------->%p\n", a + 1); printf("&a+1------->%p\n", &a + 1); printf("&a[0]+1---->%p\n", &a[0]+1); }
打印出的結果爲:code
a---------->004DF870 &a--------->004DF870 &a[0]------>004DF870 after changed a+1-------->004DF874//值增長了4,爲一個int類型長度,則此地址爲數組的第二個元素地址 &a+1------->004DF884//值增長了20,爲五個int類型長度,則此地址爲數組結束後的下一個元素地址 &a[0]+1---->004DF874//值增長了4,同a+1
雖然結果中 a == &a == &a[0] ,可是這三個值的意義不同blog
結論:io