6

Algunas veces durante el debate sobre programación, llegué a un malentendido, causado por diferentes puntos de vista sobre cómo se hace referencia a los elementos de matriz consecutivos basados ​​en cero utilizando números ordinales. Parece que hay dos puntos de vista sobre que:¿Qué elemento de matriz es el primero?

a[0] = "first"; 
a[1] = "second"; 
a[2] = "third; 

vs:

a[0] = "zeroth"; 
a[1] = "first"; 
a[2] = "second"; 

Siempre he preferido la primera, a sabiendas de que el elemento "enésima" es "elemento del índice n-1". Pero me sorprendió la cantidad de gente que encontró que contraintuitivo y utilizó la última versión.

¿Una de esas convenciones es más correcta que la otra? ¿Qué debería usar durante el debate o la documentación para evitar malentendidos?

+1

Quién está en la primera base. –

+1

el * primer elemento * se puede acceder por el * cero [th] índice * –

Respuesta

10

Creo que el significado en inglés de la palabra "first" no es ambiguo, y se refiere al elemento inicial de una secuencia. Tener "primero" se refiere al sucesor del elemento inicial es simplemente incorrecto.

En los casos en que podría haber confusión, diría "el tercer elemento, en el índice 2".

0

El primero es el primero que se toma de la pila.

5

El índice elemento es prácticamente dependiente del idioma (por ejemplo, C: 0, Lua: 1), mientras que el quinto elemento es el quinto elemento, es sólo el índice que puede ser diferente;)

Supongo que es una respuesta demasiado difusa ...

+0

No hay confusión cuando el array está basado en 1 :). – Kos

+0

No he hablado sobre la confusión. Solo una pequeña diferencia :). Uno tiene que * saber * y * entender * las peculiaridades de los idiomas que uno usa. ;) –

3

En algunos idiomas, como Pascal, puede especificar el rango de índices explícitamente. es decir

var stuff : array[-3..3] of integer; 

stuff[-3] sigue siendo el primer elemento de la matriz, no la tercera negativo.

1

Cualquiera que diga 'zeroth' no debe creer en la indexación basada en cero.

+1

Las matemáticas suelen elegir índices basados ​​en 0 en lugar de basados ​​en 1. La elección es más arbitraria en las matemáticas que en la programación: los codificadores casi siempre usan la característica incorporada de lenguaje/biblioteca estándar, mientras que en matemáticas generalmente se definen los términos desde cero. – comingstorm

Cuestiones relacionadas