Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15
  1. #11
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    perchè stai inizializzando un array.
    Come ben sai è possibile fare

    codice:
    int a[] {1,2,3,4,5,6,7,8,9};
    Di conseguenza
    codice:
    char a[] {'C','i','a','o','/0'};
    Quando il compilatore incontra come parametro inzializzatore di un char una stringa del tipo "Ciao" (o meglio un const char *), egli la internpreta nello stesso modo che vedi sopra.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  2. #12
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Questo testo chiarirà

    codice:
     char *string = "Ciao";
    La dichiarazione di string può apparire, a prima vista, anomala. Si tratta infatti, a tutti gli effetti, della dichiarazione di un puntatore e la stranezza consiste nel fatto che a questo non è assegnato un indirizzo di memoria, come ci si potrebbe aspettare, bensì una costante stringa. Ma è proprio questo l'artificio che consente di gestire le stringhe con normali puntatori a carattere: il compilatore, in realtà, assegna a string, puntatore a 16 bit, l'indirizzo della costante "Ciao". Dunque la word occupata da string non contiene la parola "Ciao", ma i 16 bit che esprimono la parte offset del suo indirizzo. A sua volta, "Ciao" occupa 5 byte di memoria. Proprio 5, non si tratta di un errore di stampa: i 4 byte necessari a memorizzare i 4 caratteri che compongono la parola, più un byte, nel quale il compilatore memorizza il valore binario 0, detto terminatore di stringa o null terminator. In C, tutte le stringhe sono chiuse da un null terminator, ed occupano perciò un byte in più del numero di caratteri "stampabili" che le compongono.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #13
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ciao XWolverineX

    non so da dove hai preso quel testo, ma bisogna dire che da tempo i puntatori non sono piu' a 16 bit (in Win32 il puntatore e', appunto, a 32 bit) ...

    E tanto meno, non esiste piu' la parte offset di un indirizzo ... (gli indirizzi erano espressi nel formato SEGMENT:OFFSET in Win16, ma con Win32 sono espressi nel formato flat a 32 bit)

  4. #14
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Un vecchio testo, vecchissimo, pensate che li dentro sono segnati ancora i puntatori far e huge, però apparte queste precisazioni, mi sembra che il resto sia chiaro.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  5. #15
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Sì ... ma la questione dei puntatori a 16 bit potrebbe confondere ulteriormente chi non ha ancora le idee chiare ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.