Allora, la questione non è proprio come l'hai capita tu. Come già ti dissi in un altro post, quando passi un argomento ad una funzione, questo viene sempre passato per valore, cosicchè anche se lo modifichi all'interno della funzione, all'uscita resta col valore originario. Per modificare una variabile devi invece passare il puntatore alla variabile e non la variabile stessa.
Questo significa che ogni qualvolta passi ad una funzione un puntatore, all'interno della funzione puoi modificare la variabile puntata da quel puntatore.
Però non sempre si passa un puntatore ad una funzione per poter modificare la variabile, spesso si passa un puntatore perche ad esempio si passa una stringa (char *) o una lista come nell'esempio che facevi tu. In queso caso si puo volere che la funzione non modifichi la variabile, nonostante sia stato passato il relativo puntatore. Mettere 'const' significa appunto che non vuoi che all'interno della funzione venga modificata la variabile puntata dal puntatore passato, non che non deve essere modificato il puntatore stesso, perche questo, come ho gia detto, è sempre passato per valore e anche se venisse modificato nel corpo della funzione, all'uscita mantiene il suo valore originario.
![]()

Rispondi quotando