Una representación poco común de elementos de array

Considere el siguiente programa.  

C

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

C++

// C++ Program to represent array in an uncommon way
 
#include <iostream>
using namespace std;
 
int main() {
 
    int arr[2] = {0, 1};
    cout << "First Element = " << 0[arr] << endl;
   
    return 0;
}
 
// This code is contributed by sarajadhav12052009

Programa bastante simple… eh… La salida será 0. 

Ahora, si reemplaza arr[0] con 0[arr] , el resultado sería el mismo. Porque el compilador convierte la operación de array en punteros antes de acceder a los elementos de la array. por ejemplo , arr[0] sería *(arr + 0) y, por lo tanto, 0[arr] sería *(0 + arr) y sabe que tanto *(arr + 0) como *(0 + arr) son iguales.

Escriba comentarios si encuentra algo incorrecto en el artículo anterior.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *