Anteprima
Vedrai una selezione di 1 pagina su 2
Puntatory e array- programmazione in C Pag. 1
1 su 2
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

PUNTATORI E ARRAY MONODIMENSIONALI

La differenza fondamentale tra puntatori e vettori è che i puntatori sono variabili che contengono un indirizzo che può essere cambiato per puntare a un'area di memoria diversa; mentre per i vettori (nonostante il loro nome sia trattato come un puntatore dal compilatore) all'inizio del vettore stesso, non esiste una variabile in cui è contenuto l'indirizzo della prima locazione del vettore e quindi questo indirizzo non può essere modificato (sarà quindi costante). Nei VETTORI, ad esempio di un vettore "vet", "&vet" è l'indirizzo che punta all'inizio del vettore stesso ovvero è l'indirizzo del primo elemento del vettore; le seguenti espressioni ad esempio indicano tutte la stessa cosa: vet, "&vet[0]", "&vet[0]", vet[1][2]. Immagino adesso di avere un vettore "str" di 100 caratteri: char str[100]; char *p; p = str; (oppure "&str[0]" oppure...)

&str)L'assegnamento significa che al puntatore p viene assegnato l'indirizzo della prima locazione di memoria del vettore. Da questo momento potremo accedere ai dati del vettore sia tramite str sia tramite p esattamente negli stessi modi:

  • Indicizzazione tra parentesi quadre
  • Tramite l'aritmetica dei puntatori, ad esempio str[10], *(str+10), p[10], *(p+10) sono tutti i modi per accedere alla 11-esima posizione del vettore str.

strcpy = funzione definita in <string.h> che copia una stringa da una locazione ad un'altra:

char *strcpy(char *destinazione, const char *sorgente);

Poiché le stringhe sono vettori di caratteri, ovviamente non si può utilizzare l'operatore "=" . Le possibili soluzioni sono due:

  1. Copiare elemento per elemento dalla stringa sorgente alla stringa destinazione fino a quando si incontra il carattere fine stringa (\0).
  2. Utilizzare strcpy.

La sintassi della funzione è: strcpy(destinazione, sorgente)!! E'

tag html, il testo formattato sarebbe il seguente:

importante verificare e assicurarsi che destinazione >= sorgente

Esempio di utilizzo della funzione strcpy()

char sorgente[]="STRINGA";
char destinazione[100];
printf("sorgente = %s", sorgente);
strcpy(destinazione,sorgente);
printf("destinazione = %s", destinazione);

come verificare che la stringa destinazione sia abbastanza grande per copiare la stringa sorgente? tramite un confronto tra stringe utilizzando la tag html.

Dettagli
Publisher
A.A. 2019-2020
2 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Susanna.mm di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università del Salento o del prof Epicoco Italo.