La lunghezza di un array in C si riferisce al numero di elementi nell'array. Deve essere specificato al momento della dichiarazione. È anche nota come dimensione di un array utilizzata per determinare la memoria richiesta per archiviare tutti i suoi elementi. Nel linguaggio di programmazione C, non abbiamo alcuna funzione predefinita per trovare la lunghezza dell'array ma possiamo determinarla manualmente utilizzando i diversi metodi menzionati di seguito:
- Utilizzo dell'operatore sizeof() Utilizzo dell'aritmetica dei puntatori Utilizzo di Loop
1. Utilizzo dell'operatore sizeof()
L'operatore sizeof è un operatore unario in fase di compilazione che calcola la dimensione delle variabili e dei tipi di dati. Restituisce un valore intero che rappresenta la dimensione dell'espressione o di una variabile in byte. L'operatore sizeof viene utilizzato principalmente per l'allocazione dinamica della memoria, ma può anche essere utilizzato per trovare la lunghezza di un array.
Il trucco consiste nel trovare prima la dimensione dell'intero array in byte e la dimensione di un singolo elemento utilizzando l'operatore sizeof e quindi dividere la dimensione dell'intero array per la dimensione di un singolo elemento in modo da poter ottenere il numero di elementi nella matrice.
Sintassi:
data_type size = sizeof(Array_name) / sizeof(Array_name[index]);>
Nella sintassi precedente,
- data_type: è il tipo di variabile in cui vogliamo memorizzare la lunghezza dell'array (come int, size_t, ecc.). Array_name: è il nome dell'array di cui vuoi trovare la dimensione. sizeof(Array_name): It è un operatore che restituisce la dimensione dell'intero array in byte. sizeof(Array_name[index]): restituisce la dimensione di un singolo elemento nell'array in byte. indice: è l'indice di qualsiasi elemento dell'array.
Esempio:
C
tcp contro udp
// C Program to calculate size of an array using sizeof()> // operator> #include> int> main()> {> >int> Arr[] = { 1, 2, 3, 4, 5 };> > >// variable to store size of Arr> >int> length =>sizeof>(Arr) />sizeof>(Arr[0]);> >printf>(>'The length of the array is: %d
'>, length);> >return> 0;> }> |
>
>Produzione
The length of the array is: 5>
Complessità temporale: O(1) poiché sono state eseguite solo operazioni a tempo costante.
Complessità spaziale: O(1) poiché non è stato utilizzato spazio aggiuntivo.
2. Utilizzo dell'aritmetica dei puntatori
Possiamo anche calcolare la lunghezza di un array in C utilizzando l'aritmetica dei puntatori. Questa soluzione di utilizzo di un puntatore è solo un trucco utilizzato per trovare il numero di elementi in un array.
Sintassi:
data_type length = *(&arr + 1) - arr;>
Nella sintassi sopra:
- &arr: puntatore a un array di elementi. (&arr + 1): indirizzo di memoria prima dell'array poiché il tipo di puntatore è un puntatore a un array di numeri interi. *(&arr + 1) – arr: differenza inclusiva tra l'inizio e la fine dell'array
Esempio:
C
// C Program to calculate size of an array using pointer arithmetic> #include> int> main()> {> >int> Arr[] = { 1, 2, 3, 4, 5, 6 };> >// variable to store the size of Arr> >int> length = *(&Arr + 1) - Arr;> >printf>(>'Number of elements in Arr[] is: %d'>, length);> >return> 0;> }> |
>
>Produzione
collezioni java
Number of elements in Arr[] is: 6>
3. Utilizzo del ciclo
Il metodo loop viene utilizzato per calcolare la lunghezza di un array in C. Itera attraverso tutti gli elementi di un array e incrementa il conteggio.
Esempio:
C
// C Program to calculate size of an array using loop> #include> > int> arr_length(>int> arr[])> {> >int> i;> >int> count = 0;> >for>(i=0; arr[i]!=>' '>; i++)> >{> >count++;> >}> >return> count;> }> > int> main()> {> >int> arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};> >int> n;> > >n = arr_length(arr);> >printf>(>'Length of Array is: %d'>, n);> > >return> 0;> }> // This code is contributed by Susobhan Akhuli> |
>
>Produzione
Length of Array is: 10>
Complessità temporale: O(n) dove n è il numero di elementi nell'array.
ordinamento heapify
Complessità spaziale: O(1) poiché non è stato utilizzato spazio aggiuntivo.
Nota: Tieni presente che questi metodi funzionano solo quando l'array è dichiarato nello stesso ambito. Questi metodi falliranno se li proviamo su un array passato come puntatore. Ciò accade a causa del decadimento dell'array.
I metodi iterativi per trovare la lunghezza delle stringhe (array di caratteri) non possono essere applicati anche ad array di altri tipi poiché in questi tipi di array non esiste alcun indicatore di fine a differenza del metodo iterativo ‘ ’ NULL carattere che segna la fine della stringa.