C Programming

Uncommon representation of array elements

Consider the below program.

int main( )
  int arr[2] = {0,1};
  printf("First Element = %d\n",arr[0]);
  return 0;

Pretty Simple program.. huh… Output will be 0.

Now if you replace arr[0] with 0[arr], the output would be same. Because compiler converts the array operation in pointers before accessing the array elements.

e.g. arr[0] would be (arr + 0) and therefore 0[arr] would be (0 + arr) and you know that both (arr + 0) and (0 + arr) are same.

Recent Comments


For any feedback,email us at feedback@geeksforgeeks.org

Report a Bug

For any report or bug,email us at support@geeksforgeeks.org