seguito frammento di codice:Riferimento che non fa riferimento ovunque?
int ia[3][4] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
int(&row)[4] = ia[1];
non riesco a ottenere la mia testa intorno perché questo particolare codice è valido. Per la mia comprensione attuale non ho una spiegazione razionale. Qualcuno può aiutarmi con quello? Il mio problema è con &row
che non sembra fare riferimento ovunque. La mia unica spiegazione è che questo deve essere valido perché è un'inizializzazione.
Ho la seguente spiegazione dal mio libro:
.... definiamo fila come un riferimento ad un array di quattro interi
Quale array? Quello che stiamo per inizializzare?
"Qui la parte int (& row) [4] dichiara una riga denominata di riferimento che può fare riferimento a un array di 4 pollici." - Questo significa che può solo ma non è così? O indica l'array che si sta inizializzando? – HansMusterWhatElse
@KingJulian Può e lo deve, lo si inizializza (la parte '= ia [1]' per fare riferimento (o puntare a se si desidera, ma la dicitura "punta a" verrebbe normalmente utilizzata con un puntatore, non un riferimento) un array di 4 pollici. Forse è necessario leggere ad es. [Questo] (http://stackoverflow.com/questions/57483/what-are-the-differences-between-a-pointer-variable-and-a-reference-variable-in). – nos