La longitud de una matriz en C se refiere a la cantidad de elementos de la matriz. Debe especificarse en el momento de la declaración. También se conoce como el tamaño de una matriz que se utiliza para determinar la memoria necesaria para almacenar todos sus elementos. En el lenguaje de programación C, no tenemos ninguna función predefinida para encontrar la longitud de la matriz, pero podemos determinarla manualmente utilizando los diferentes métodos que se mencionan a continuación:
- Usando el operador sizeof() Usando la aritmética de punteros Usando el bucle
1. Usando el operador sizeof()
El operador sizeof es un operador unario en tiempo de compilación que calcula el tamaño de las variables y los tipos de datos. Devuelve un valor entero que representa el tamaño de la expresión o una variable en bytes. El operador sizeof se usa principalmente para la asignación de memoria dinámica, pero también se puede usar para encontrar la longitud de una matriz.
El truco consiste en encontrar primero el tamaño de toda la matriz en bytes y el tamaño de un solo elemento usando el operador sizeof y luego dividir el tamaño de toda la matriz por el tamaño de un solo elemento para que podamos obtener el número de elementos. en la matriz.
Sintaxis:
data_type size = sizeof(Array_name) / sizeof(Array_name[index]);>
En la sintaxis anterior,
- data_type: Es el tipo de variable en la que queremos almacenar la longitud del array (como int, size_t, etc.). Array_name: Es el nombre de la matriz cuyo tamaño desea encontrar. tamaño de (nombre_matriz): es un operador que devuelve el tamaño de toda la matriz en bytes. sizeof(Array_name[index]): devuelve el tamaño de un solo elemento en la matriz en bytes. índice: Es el índice de cualquier elemento del array.
Ejemplo:
C
tabla de numeros romanos 1 100
// 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;> }> |
>
>Producción
The length of the array is: 5>
Complejidad del tiempo: O(1) ya que solo se han realizado operaciones en tiempo constante.
Complejidad espacial: O(1) ya que no se ha utilizado espacio adicional.
2. Uso de la aritmética de punteros
También podemos calcular la longitud de una matriz en C usando aritmética de punteros. Esta solución de usar un puntero es solo un truco que se usa para encontrar la cantidad de elementos en una matriz.
Sintaxis:
data_type length = *(&arr + 1) - arr;>
En la sintaxis anterior:
- &arr: puntero a una matriz de elementos. (&arr + 1): la dirección de la memoria delante de la matriz como tipo de puntero es un puntero a una matriz de números enteros. *(&arr + 1) – arr: Diferencia inclusiva entre el inicio y el final de la matriz
Ejemplo:
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;> }> |
la subcadena java contiene
>
>Producción
Number of elements in Arr[] is: 6>
3. Usando bucle
El método de bucle se utiliza para calcular la longitud de una matriz en C. Recorre todos los elementos de una matriz e incrementa el recuento.
Ejemplo:
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> |
>
>Producción
Length of Array is: 10>
Complejidad del tiempo: O(n) donde n es el número de elementos de la matriz.
Complejidad espacial: O(1) ya que no se ha utilizado espacio adicional.
Nota: Tenga en cuenta que estos métodos solo funcionan cuando la matriz se declara en el mismo ámbito. Estos métodos fallarán si los probamos en una matriz que se pasa como puntero. Esto sucede debido al Array Decay.
registrar memoria
Los métodos iterativos para encontrar la longitud de las cadenas (matriz de caracteres) tampoco se pueden aplicar a matrices de otros tipos, ya que en estos tipos de matrices no existe un indicador de fin, a diferencia de los métodos iterativos. ' ' NULO Carácter que marca el final de la cadena.