En 32 bits sí que sería lo mismo XDD
En 64 bits no, pues la primera se incrementa en 4 y la segunda en 8
Gracias
Supongamos el siguiente arreglo:
int arreglo[8];
arreglo es de tipo
int* un puntero al primer elemento de arreglo
&arreglo es de tipo
int (*)[8] un puntero a un arreglo de 8 enteros
Por lo tanto si hacemos
arreglo + 1 incrementara 4 bytes (suponiendo int == 4 bytes) pero
&arreglo + 1 sabiendo que es un puntero a arreglo de 8 ints el incremento sera 4 * 8 = 32 saltamos 8 bytes justo despues del final de arreglo. Puedes comprobar esto haciendo:
#include <stdio.h>
int main()
{
int array[8];
int n = *(&array + 1) - array;
printf("Size array = %d\n", n
); //Debe imprimir 8
return 0;
}