1. 程式人生 > >a[1]和1[a]——淺談陣列下標運算子

a[1]和1[a]——淺談陣列下標運算子

C語言裡,對陣列的操作在絕大部分情況下,會將陣列名隱式轉換成一個指向陣列首元素的指標來處理。
比如:

int a[] = { 0, 1, 2, 3 };

這是一個整型陣列。 如果我們要引用其中的第2個元素,可以用以下兩種方式。

printf("%d", a[1]);
printf("%d", *(a+1));

這兩種寫法是等效的。 不失一般性,C編譯器將a[i]隱式轉換成*(a+i)處理。
在此前提下可以得出一個有趣的推論:

a[1] == *(a + 1) == *(1 + a) == 1[a]

也就是說,a[1]和1[a]是等效的。