Ho 2 domande ... (sto imparando C e questo potrebbe essere domande stupide. Scuse)E 'valida per stampare l'indirizzo della stringa in C
Come per How to declare strings in C e nella maggior parte del libri, dicono sempre che dichiara una stringa anche se si assegnano memoria dicendo
char p2[] = "String";
la mia domanda è, esiste un modo per dichiarare una stringa?
Secondo https://stackoverflow.com/a/1704433/1814023, in un esempio come questo,
char s[]="hello";
sono posti in lettura solo area e poi copiato matrice. È valido in C stampare l'indirizzo della stringa in questo modo?
printf("%p\n", &"Hello There"); // I tried, it prints some address
e facendo questo
printf("%p\n", &"Hello There");
printf("%p\n", &"Hello There");
si sta stampando lo stesso indirizzo. ciò che è tatto è, dovrebbe stampare un indirizzo diverso. Il compilatore sta facendo qualche ottimizzazione qui?
Esiste comunque una variabile stringa? – StackIT
Non penso sia possibile dichiarare una variabile stringa. Una variabile stringa è sempre definita. Ho ragione? – StackIT
@Patil: cosa intendi per "variabile stringa"? Puoi avere una matrice di caratteri o un puntatore a un carattere. Questi possono essere dichiarati. Se la matrice contiene un carattere nullo e tutti i valori che precedono tale null sono valori in qualche particolare set di caratteri (o se lo stesso vale per il valore indicato dal char *), allora puoi chiamare la variabile "stringa". –