consideri:Perché questo ciclo 'for' non è valido?
int ia[3][4];
for (auto row : ia)
for (auto col : row)
Il primo
for
itera ia, i cui elementi sono matrici di dimensione 4. Poichérow
non è un riferimento, quando il compilatore inizializzarow
Si converte ogni elemento dell'array (come qualsiasi altro oggetto del tipo array ) a un puntatore al primo elemento dell'array. Di conseguenza, in questo ciclo il tipo dirow
èint*
.
io non sono davvero sicuro che ho capito come funziona questa auto, ma se posso supporre che dà automaticamente un tipo a una riga sulla base di ia
membri di array di tipo, ma non capisco il motivo per cui questo tipo di for
, dove la riga non è un riferimento, non è valida. Perché sta per succedere? "puntatore al primo elemento dell'array", a causa di cosa?
Ho trovato questo in C++ Primer 5th Edition di Lippman, pagina 182. –