Puntatori e Stringhe
Puntatori e stringhe.
Nel linguaggio C non esiste il tipo di dato stringa.
Le stringhe, infatti, sono gestite dal compilatore come sequenze di caratteri, cioè di dati di tipo char.
Quindi, le stringhe possono essere dichiarate, manipolate con puntatori, ma dobbiamo considerare le stringhe come un insieme di caratteri, come una successione di caratteri.
Una stringa, quindi, può anche essere vista come un vettore con elementi omogenei di tipo carattere.
La peculiarità di una stringa è che l'ultimo carattere di questo vettore deve dare il segnale di terminazione di stringa, che viene indicato da slash 0.
Il nome di un vettore è un puntatore che punta al primo elemento del vettore.
I vettori si contano la prima, il primo elemento del vettore, nella posizione 0.
Per esempio, se io vado a dichiarare un char a, aperta quadra chiusa quadra, cioè dichiaro un vettore che contiene degli elementi, e questi elementi sono quindi tipo char, potrò andare a scrivere i vari elementi del vettore in successione, lettera c i a o, quindi posizione 0 c, posizione 1 i, posizione 2 a, posizione 3 o, e alla fine devo aggiungere il terminatore di stringa.
Questo è un vettore composto da 5 elementi.
Si tratta di una stringa, perché?
Perché il vettore termina con appunto il terminatore di stringa.
All'interno delle parentesi quadre non è specificata la dimensione del vettore che viene desunta dall’inizializzazione, andando quindi a inserire, elemento per elemento, il contenuto della stringa.
Allo stesso modo, avrei potuto scrivere char a, parentesi quadra aperta parentesi quadra chiusa, uguale e scrivere la stringa in doppi apici.
Il terminatore di stringa sarebbe stato messo, viene messo automaticamente.
Quindi, la stringa è un vettore di caratteri che restituisce il puntatore del primo dei suoi caratteri.
Posso usare anche i puntatori per dichiarare, per dichiararla, per dichiarare la stringa e manipolarla, per esempio, se faccio char e definisco quindi un puntatore a caratteri, se vado poi a fare p uguale, puntatore uguale alla stringa che voglio inserire racchiusa tra doppi apici, automaticamente, a partire da quel puntatore, mi verrà riempito, indirizzo per indirizzo, in successione, con appunto i caratteri che compongono la stringa che voglio definire.