[RISOLTO]Chiarimenti sugli array

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
alessandro 22
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 315
Iscrizione: lunedì 25 giugno 2012, 12:28
Desktop: unity
Distribuzione: Ubuntu 16.04 LTS 64 bit

[RISOLTO]Chiarimenti sugli array

Messaggio da alessandro 22 »

Salve a tutti,
Studiando il linguaggio C mi sono imbattuto sugli array. Vi vorrei fare una domanda (forse stupida) mi potreste spiegare più precisamente cosa sono gli array e soprattutto la loro utilità?
Io ho capito che sono insiemi di variabili dello stesso tipo e che hanno un valore che va da 0 a n-1 (è giusto?).
Vorrei maggiori chiarimenti sul loro utilizzo.
Grazie mille 😃
Ultima modifica di alessandro 22 il domenica 22 giugno 2014, 23:53, modificato 1 volta in totale.
Il Saggio coltiva Linux, tanto Windows si pianta da solo.
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: Chiarimenti sugli array

Messaggio da SuperStep »

ciao, un po' dipende da come vuoi effettuare l'approccio;

approccio ad alto livello:
Un array e' una struttura dati che permette di conservare una collezione di informazioni eterogenea accedibile tramite un indice.

approccio a basso livello:
un array, e' un frammento di memoria residente nella memoria dati allocata consegutivamente; la dimensione equivale alla sizeof(tipo) * dimensione scelta.
l'offset che si ottiene durante un operazione del tipo

Codice: Seleziona tutto

vettore[10] = qualcosa
e' data dalla seguente operazione:
indirizzo_finale (vettore[10]) = vettore + sizeof(tipo) * 10)

quando dichiari un vettore non fai altro che allocare un frammento di memoria, l'uso che ne puoi fare e' immenso... ricorda che il C e' un linguaggio a basso livello, quindi manipolare informazioni e' molto vicino alla macchina.
tutte le operazioni che vengono eseguite non vengono interpretate, quindi effettivamente tu lavori con indirizzi di memoria e valori.

Ma se dovessimo dare (visto che e' il tuo primo approccio) una definizione "banale" di un array sarebbe questa:
Un array, e' una collezione di variabili accedibile tramite un nome ed un indice (nome = nome_array; indice = posizione della variabile nell'array).
Esso permette di collezionare al massimo N (con N definito come dimensione dell'array) elementi disposti sequenzialmente.
Lo scope di un array e' visibile finche' lo il metodo chiamante che genera l'array non viene rimosso dallo stack di funzioni (scusa e' spiegato un po' male, ma sigifica che l'array esiste finche la funzione che lo crea esiste).
a differenza delle variabili, il nome di un array conserva un indirizzo (esempio: tipo nome_array[10]; nome_array e' l'indirizzo base), mentre il nome variabile conserva il valore.
Inoltre, il nome array (indirizzo di memoria di base dell'array) e' una costante (se provi a fare nome_array++ generi un errore), quindi il suo contenuto non puo' essere variato.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Avatar utente
alessandro 22
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 315
Iscrizione: lunedì 25 giugno 2012, 12:28
Desktop: unity
Distribuzione: Ubuntu 16.04 LTS 64 bit

Re: Chiarimenti sugli array

Messaggio da alessandro 22 »

Grazie mille sei stato molto chiaro
Il Saggio coltiva Linux, tanto Windows si pianta da solo.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti