Queste due righe di codice ottengono lo stesso risultato? Se ho avuto queste righe in una funzione, la stringa è memorizzata nello stack in entrambi i casi? C'è una forte ragione per cui dovrei usare l'una sull'altra, oltre a non dover dichiarare il terminatore null nella prima riga di codice?In C, posso inizializzare una stringa in una dichiarazione di puntatore nello stesso modo in cui posso inizializzare una stringa in una dichiarazione di array di caratteri?
char s[] = "string";
char* s = "string\0";
Solo per informazioni, non è necessario il \ 0 nel secondo esempio. Quando si utilizzano le virgolette doppie, \ 0 viene sempre inserito nell'array. – RMAAlmeida
E proprio per il vocabolario, quello di cui stai parlando non sono compiti, ma dichiarazioni con inizializzatori. Obbediscono a regole diverse. E.La tua prima affermazione non sarebbe consentita come un incarico, non puoi assegnare gli array. –
possibile duplicato di [C: differenze tra puntatore e array] (http://stackoverflow.com/questions/1335786/c-differenze-tra -pointer-e-array) –