El índice, la asignación y el incremento en una declaración se comportan de manera diferente en C ++ y C #. ¿Por qué?

¿Por qué este ejemplo de código se comporta de manera diferente enc ++ yDO#.

[Ejemplo de C ++]

int arr[2];
int index = 0;
arr[index] = ++index;

El resultado de lo cual seráarr [1] = 1;

[Ejemplo de C #]

int[] arr = new int[2];
int index = 0;
arr[index] = ++index;

El resultado de lo cual seráarr [0] = 1;

Encuentro esto muy extraño. ¿Seguramente debe haber alguna justificación para que ambos idiomas lo implementen de manera diferente? Me pregunto qué haríaC ++ / CLI ¿salida?

Respuestas a la pregunta(7)

Su respuesta a la pregunta