18.08.2013 Views

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

La stringa vuota è “.<br />

Una variabile stringa viene definita:<br />

char stringa[10];<br />

è cioè un vettore di caratteri in grado di memorizzare al più 9 caratteri (l’ultimo è sempre 0).<br />

char s[] = "abcde";<br />

è una stringa inizializzata. In modo equivalente si poteva scrivere<br />

char s[] = { ’a’, ’b’, ’c’, ’d’, ’e’, ’\0’ };<br />

Di fatto, una stringa in C è un vettore di caratteri terminato da un byte a 0. Non possono quindi<br />

contenere il carattere “<br />

0”. La rappresentazione tra virgolette è solo una notazione semplificata <strong>per</strong> rappresntare un<br />

vettore. Ogni volta che nel testo del programma appare una stringa tra virgolette, il compilatore<br />

memorizza la stringa nel segmento dati del programma e la rappresenta con l’indirizzo del suo<br />

primo elemento. Un carattere incluso in apice singolo è un numero intero, cioè il codice ASCII<br />

del carattere indicato.<br />

Riassumendo, esempi di dichiarazioni di stringhe e puntatori:<br />

/* un vettore di 6 caratteri, compreso il terminatore */<br />

char s[] = "prova";<br />

/* lo stesso, in notazione barocca */<br />

char s[] = {’p’, ’r’, ’o’, ’v’, ’a’, 0};<br />

/* un carattere, un puntatore a carattere */<br />

char c, *t;<br />

/* c prende il valore ’p’ */<br />

c = *s;<br />

/* t rappresenta la stringa "ova" */<br />

t = s + 2;<br />

/* ora la stringa s è "trova" */<br />

s[0] = ’t’;<br />

/* un puntatore ad un’area preiinizializzata di 7 byte */<br />

char *name = "arturo";<br />

/* un’area di 6 byte, con indirizzo "surname" */<br />

char surname[] = "rossi";<br />

/* ora name indica "rturo" */<br />

name++;<br />

/* errore: surname è un indirizzo costante */<br />

surname++;<br />

92

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!