檢查我寫的以下C代碼。我認爲編譯器可能會抱怨我[a],但它實際上打印出與[i]完全相同的值。這是如何發生的?爲什麼即使使用索引交換數組名稱也可以使用數組?
#include <stdio.h>
int main(){
int a[3] = {0, 1, 2};
int i;
for(i = 0; i < 3; i++){
printf("normal a[%d] = %d\n", i, a[i]);
printf("abnormal a[%d] = %d\n", i, i[a]);
}
return 0;
}
打印出值:
normal a[0] = 0
abnormal a[0] = 0
normal a[1] = 1
abnormal a[1] = 1
normal a[2] = 2
abnormal a[2] = 2
因爲['a [i] == i [a]'](http://stackoverflow.com/questions/381542/with-c-arrays-why-is-it-the-case-that-a5 -5a) – 2014-11-25 07:15:40
你是什麼意思? – drdot 2014-11-25 07:15:54
點擊我的評論中的代碼,看看爲什麼 – 2014-11-25 07:18:28