Qual é a diferença entre um ponteiro e uma referência?
Uma referência precisa ser vinculada na criação e nunca pode ser revinculada; um ponteiro pode ser null, reatribuído, e tem seu próprio endereço e aritmética. Na prática você usa uma referência quando a coisa precisa existir e um ponteiro quando a ausência é um estado válido. Uma referência não é um objeto separado, por isso não existem referências a referências nem arrays delas.