Il secondo è sbagliato, dovrebbe essere const char *. La differenza tra il primo e il secondo è che il primo alloca un buffer di 20 caratteri sullo stack inizializzandolo alla stringa in questione, mentre il secondo alloca lo spazio per un puntatore e ci assegna l'indirizzo della stringa "Hello World!" che si trova nella tabella delle stringhe dell'eseguibile, e, come tale, non è modificabile (per questo dovrebbe essere un const char *).Originariamente inviato da gianvituzzi
Salve,
ho visto che in c++ sembra non esistere il concetto di stringhe, quindi bisogna sempre dare una dimensione alle variabili char quando si definiscono, allora mi chiedo: che differenza c'è tra:
ecodice:char k[20] = "Hello World!";
non mi converrebbe usare sempre quest'ultimo tipo di assegnazione?codice:char * k = "Hello World!";
Se vuoi una soluzione analoga alla prima (per cui puoi modificare la stringa) ma leggermente più comoda puoi usare il metodo di XWolverineX.
In generale comunque in C++ si preferisce usare la classe string, anche se comunque le stringhe C ASCIIZ te le troverai sempre tra i piedi.

Rispondi quotando