¿Cómo es que la dirección de una matriz es igual a su valor en C?

En el siguiente bit de código, los valores de puntero y las direcciones de puntero difieren según lo esperado.

¡Pero los valores de matriz y las direcciones no lo hacen!

¿Cómo puede ser esto?

Salida

my_array = 0022FF00
&my_array = 0022FF00
pointer_to_array = 0022FF00
&pointer_to_array = 0022FEFC
#include <stdio.h>

int main()
{
  char my_array[100] = "some cool string";
  printf("my_array = %p\n", my_array);
  printf("&my_array = %p\n", &my_array);

  char *pointer_to_array = my_array;
  printf("pointer_to_array = %p\n", pointer_to_array);
  printf("&pointer_to_array = %p\n", &pointer_to_array);

  printf("Press ENTER to continue...\n");
  getchar();
  return 0;
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta