2015-04-14 112 views
-1

我遇到了今天訪問數組元素的另一種方法。我只是好奇,如果它正確的方式來訪問數組元素。訪問C中的數組元素

這裏是我的代碼,

#include <stdio.h> 

int main(int argc, char* argv[]) 
{ 
    int arr[4] = {4, 5, 6, 7}; 
    printf ("---> %d \n", 2[arr]); 
    return 0; 
} 

以下爲輸出,

---> 6 

我想程序將無法編譯,但不是沒有!我試圖在Linux和Windows上編譯它,它在兩者上都能正常工作。專家對此有何看法?

+1

'2 [arr] == arr [0123]' –

+2

'因爲'*(arr + i)== *(i + arr)''我[arr] == arr [i]'。 – Maroun

+1

[數組下標在C中是可交換的](http://c-faq.com/aryptr/joke.html) –

回答

3

這工作,因爲該表達式a[b]相當於*(a + b),這意味着你可以交換的ab的順序,除了不關心。