perché dovrebbe? perché per quanto ne so è un puntatore, o meglio la stringa "Ciao Mondo" è data in "gestione" ad un puntatore.Originariamente inviato da MItaly
Perché dovrebbe?
"Ciao Mondo" è uno string literal, e quindi un puntatore ad una stringa che sta da qualche parte in memoria, e il suo tipo è char *. Nel momento in cui lo assegni a p non succede nulla di strano: p semplicemente punterà alla stringa "Ciao Mondo".
Per inciso, il C è un linguaggio a tipizzazione statica, dopo che hai dichiarato una variabile questa non può cambiare di tipo, quindi dire che p "diventa" un puntatore a puntatore non ha molto senso.
(comunque, sarebbe meglio usare const char *, visto che gli string literal non vanno modificato pena undefined behavior - e non a caso in C++ il tipo degli string literal è const char *)
se fosse solo una costante dovrebbe darmi errore, giusto? Se tratto quella costante come puntatore non mi segna nessun errore, neanche 1 warning.codice:#include <stdio.h> int main(){ printf("\n%p\n","Ciao Mondo"); }