Sto imparando a conoscere le stringhe in C ora.Perché scanf non ha bisogno di una e commerciale per le stringhe e funziona anche bene in printf (in C)?
Come mai usare scanf per ottenere una stringa che si può fare
scanf("%s",str1);
e per printf si può fare
printf("The string is %s\n", str1);
Capisco che per scanf è perché la stringa è solo un personaggio array che è un puntatore, ma per printf, com'è possibile che tu possa semplicemente mettere il nome della variabile come faresti per un int o float?
Più precisamente, un'espressione di tipo di matrice viene convertita implicitamente ("decadimenti") in un puntatore al primo elemento dell'array nella maggior parte ma non in tutti i contesti. Un argomento di funzione sembra essere uno dei contesti in cui avviene la conversione. –