Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
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