Introduzione alle matrici nella programmazione C.

L'array è un tipo di struttura dati utilizzata per archiviare dati omogenei in posizioni di memoria contigue.

Qui indice si riferisce alla posizione di un elemento nella matrice. Immaginiamo se A (L) è il nome dell'array dove "A" è il nome della variabile e "L" è la lunghezza dell'array, ovvero il numero di elementi presenti nell'array.

Quindi A (i) rappresenta l'elemento nella posizione "i + 1" nell'array. Ad esempio:

A (6) = 72 significa elemento in 6 + 1a posizione dell'array.

Need for Array

Aiuta a rappresentare un gran numero di elementi usando una singola variabile. Inoltre, consente di accedere più rapidamente agli elementi nell'archivio in posizione di memoria utilizzando l'indice dell'array che rappresenta la posizione di un elemento nell'array.

Accesso agli elementi nell'array

L'accesso a qualsiasi elemento dell'array è molto più semplice e può essere eseguito in complessità O (1)

Gli indici di un array iniziano da 0 a -1, 0 indica il primo elemento dell'array e -1 indica l'ultimo elemento dell'array. Allo stesso modo, -2 indica l'ultimo ma un elemento dell'array.

Per esempio:

Sia A un array con lunghezza 7 e si deve accedere all'elemento con valore 94, quindi deve usare A (3).

Sintassi

printf ("% d", A (3)) - Verrà stampato 94 dove 3 è l'indice a cui dobbiamo accedere e a è la variabile dell'array.

Dichiarazione di matrice in C

In C, l'array deve essere dichiarato correttamente prima di usarlo con il suo nome e lunghezza. Esistono tre sintassi in cui possiamo dichiarare le matrici nel programma ac

Sintassi 1

int A (7) = (21, 56, 32, 52, 63, 12, 48) - Dichiarazione della lunghezza e degli elementi dell'array

Programma C.

#include
int main(
int a(7) = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Produzione:

Sintassi 2

int A () = (21, 56, 32, 52, 63, 12, 48) - Dichiarazione della lunghezza degli elementi dell'array

Programma C.

#include
int main(
int a() = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Produzione:

Sintassi 3

int A (7); - Dichiarando solo la lunghezza dell'array.

Programma C.

#include
int main(
int a(7) ;
int i;
printf(“Please enter the array elements”);
for(i=0;i<7;i++)(
scanf(“%d\n”, &a(i));
)
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Produzione:

Sintassi 4

int A (7) = (0); - Dichiarando la lunghezza dell'array e dell'elemento quando un elemento è uguale in tutte le posizioni.

Programma C.

#include
int main(
int a(7)=(0) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Produzione:

Sintassi 5

Dichiarando la lunghezza dell'array e anche il valore degli elementi in cui tutti i valori sono uguali

Caso 1 - int a (3) = ((0..1) = 3) -

Caso 2 - int a (3) = (0); -

Sintassi 6

int * a; - Dichiarazione dell'array come puntatore alla posizione degli elementi.

Nessun indice fuori controllo

Nel caso in cui si tenti di accedere all'elemento oltre i limiti dell'array, il compilatore non mostra alcun errore, ma genera un avviso. E dà anche un output inaspettato.

Esempio

a (4) = (2, 3, 4, 5);

Se scriviamo printf (a (4));

L'output sarà 225263545 - Inaspettato

Inoltre, in C, non è un errore compilatore inizializzare un array con più elementi numerici rispetto alla lunghezza specificata nella dichiarazione. Ad esempio, il programma seguente non mostra invece un errore.

Programma C.

#include
int main(
int arr(2)=(10, 22, 56, 32, 45, 89) ;
int i;
printf(“Elements of array are”);
for(i=0;i<2;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)

Produzione:

Recupero di elementi in array

Il recupero di elementi di un array e la loro stampa è un compito molto semplice. Richiede solo un ciclo per stampare n elementi di un array. quindi la complessità di un tale programma è O (n).

Ad esempio int a (7) = (23, 56, 8.944, 58, 24, 5);

Il programma per la stampa degli elementi di un array è

Programma C.

#include
int main(
int arr(7)=(23, 56, 8, 944, 58, 24, 5) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)

Produzione:

Matrice multidimensionale

Il linguaggio C consente anche matrici multidimensionali, ovvero matrici che possono contenere elementi in righe e colonne.

Dichiarazione

Mentre si dichiara l'array multidimensionale, è necessario specificare la lunghezza di tutte le dimensioni tranne quella sinistra perché è facoltativa.

Esempio

La dichiarazione dell'array nel modo seguente comporterà un errore poiché non vengono specificate dimensioni diverse da quella più a sinistra.

Int a () () (2) = (

((1, 2), (3, 4)),

((5, 6), (7, 8))

)

Esempio

Di seguito è riportata una sintassi corretta per la dichiarazione dell'array multidimensionale in C.

Int a () (3) = (

(52, 56, 86), () 44, 6, 21

)

Passaggio di matrice come parametro in funzione

A volte durante la creazione di una funzione, è necessario che la funzione utilizzi un numero di variabili che deve prendere da funzioni diverse. Quella volta quelle variabili devono essere passate come parametro a per quella chiamata di funzione. Ma alla fine, con l'aumentare del numero di variabili, dobbiamo usare un array per passare la variabile o nel caso in cui alcune operazioni debbano essere eseguite sugli array, quindi occorre anche che sorga un array completo come parametro in una funzione. Per passare un array come variabile alla funzione:

1. Chiama per valore

In questo tipo di chiamata del metodo, i valori effettivi dell'array vengono copiati nel parametro formale in cui entrambi sono memorizzati in posizioni diverse, pertanto qualsiasi modifica apportata ai valori non viene riflessa nella funzione.

Programma C.

#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
for (int x=0; x<10; x++)
(
show(arr(x));//value of array //elements are passed as an argument
)
return 0;
)

Produzione:

2. Chiama per riferimento

Mentre si chiama una funzione quando invece di passare i valori effettivi dell'array, il riferimento alla variabile viene passato come parametro, allora è noto come chiamata per riferimento.

Programma C.

#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
for (int x=0; x<10; x++)
(
show(&arr(x));//reference of array //elements are passed as an argument
)
return 0;
)

Produzione:

3. Passaggio dell'intera matrice come argomento

Ad esempio - Sia arr un array di 7 elementi.disp è una funzione per visualizzare gli elementi di un array che accettano 2 argomenti, in primo luogo che punta alla prima posizione dell'array e l'altro alla lunghezza dell'array (var2). viene passata la funzione arr variabile che punta alla posizione del primo elemento dell'array e della lunghezza, ovvero 7.

Programma C.

#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)
#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)

Produzione:

Allocazione di memoria di array

La rappresentazione della memoria in linguaggio C è considerata suddivisa in 5 sezioni come indicato di seguito: -

  1. Segmento di testo
  2. Segmento dati inizializzato
  3. Segmento dati non inizializzato
  4. Pila
  5. Mucchio

Dati, heap e stack sono i tre segmenti in cui agli array è possibile allocare memoria per archiviare i suoi elementi, lo stesso delle altre variabili.

  1. Matrici dinamiche : le matrici dinamiche sono matrici che richiedono l'allocazione della posizione di memoria in fase di esecuzione. Per questo tipo di array la memoria viene allocata nella posizione della memoria dell'heap.
  2. Array globali o statici: questi sono i tipi di array allocati in fase di compilazione. Pertanto, la memoria del segmento di dati viene sempre allocata per questo tipo di array.
  3. Matrici locali: le matrici che vengono inizializzate all'interno di una funzione o di un blocco sono note come matrici locali. Questi tipi di array ottengono memoria allocata sul segmento dello stack.

Array di caratteri

In C, le stringhe sono considerate una matrice monodimensionale di caratteri con carattere nullo '\ 0' nell'ultima posizione che il compilatore aggiunge automaticamente ad esso.

Ad esempio, "I love coding" è considerato come un array a dimensione singola in c di lunghezza 14 incluso il carattere '\ 0' alla fine.

Dichiarazione: ci sono 2 modi per dichiarare e inizializzare l'array di caratteri:

  1. char str (12) = "amo il codice";
  2. char str (12) = ('I', '', 'l', 'o', 'v', 'e', ​​'', 'c', 'o', 'd', 'e, ' \ 0 ''); - Qui dobbiamo terminare con il carattere '\ 0' alla fine.
  3. Char ch (3) = 'modi' - Dichiarazione illegale

Acquisizione di input e output

Durante l'acquisizione di input e la visualizzazione di output in C per la matrice di caratteri '% c' è possibile utilizzare rispettivamente la funzione scanf () e printf ().

Durante l'implementazione dello stesso per le stringhe, è possibile utilizzare "% s", ma interrompe la scansione al verificarsi del primo carattere di spazi bianchi.

Programma C:

#include
#include
int main()
(
char str(20);
printf(“Enter a string”);
scanf(“%(^\n)”, &str);
printf(“%s”, str);
return 0;
)

Produzione:

Oltre alle funzioni printf e scanf, C fornisce anche funzioni stringa come get () e put () per ignorare gli spazi bianchi di stringa durante la scansione e la stampa.

Conclusione

La matrice è un tipo di struttura di dati utilizzata per archiviare i dati omogenei in una posizione di memoria contigua. Le matrici in Programmazione sono usate come rappresentazione per diverse strutture di dati complessi come un albero, un heap, ecc. Il linguaggio C consente matrici multidimensionali per tutti i tipi di dati primitivi. Le stringhe sono anche rappresentate come una matrice di caratteri con il carattere null '\ 0' come ultimo carattere. Le matrici in Programmazione consentono il rapido recupero e l'accesso diretto agli elementi dell'array utilizzando l'indice in cui è archiviato l'elemento.

Articoli consigliati

Questa è una guida agli array nella programmazione C. Qui discutiamo l'introduzione, i bisogni dell'array, insieme a Passare le funzioni dell'array include Chiamata per valore, Chiama per riferimento e Passare l'intero array come argomento. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Matrici 3D in C
  2. I migliori compilatori C.
  3. Pattern nella programmazione C.
  4. Fattoriale in C
  5. Guida agli array in C #
  6. Matrici 3D in C ++
  7. Guida agli array in PHP
  8. C Moltiplicazione della matrice di programmazione
  9. Funzioni dell'array PHP | Tipi | Esempi

Categoria: