@barba
Non voglio criticare la tua risposta, solo che è inesatto dire che la costante risiede nello stack... il puntatore si, ma la costante è allocata in una sezione apposita denominata rodata (read-only-data) del segmento dati (ds) oppure posizionata segmento del codice (cs)...dipende dal sistema.
Si può provare a vedere gli indirizzi con uno stupido programmino:
#include <stdio.h>
int global;
int main ()
{
int local;
printf ("main()=%p\n",&main);
printf ("rodata=%p\n",&"Hello World");
printf ("global=%p\n",&global);
printf ("local =%p\n",&local);
return 0;
}
oppure generare l'assembler con il compilatore:
max@studio:~/forum> gcc -S prova.c
max@studio:~/forum> grep -2 "asd" prova.s
.section .rodata
.LC0:
.string "asd "
.LC1:
.string "%d\n"
.text
max@studio:~/forum>
Ciao