Comparación de arrays y punteros en C/C++ con ejemplos

¿Qué es Array?

Una array es la colección de varios elementos del mismo tipo almacenados en ubicaciones de memoria contiguas.

Array

La posición de cada elemento se puede calcular agregando un desplazamiento al valor base, es decir, la ubicación de memoria del primer elemento de la array.

Sintaxis:

tipo de datos var_name[size_of_array] = {elementos};

Ejemplo:

C++

#include <iostream>
using namespace std;
int main()
{
    int i, j;
  
    // Declaring array
    int a[5];
  
    // Insert elements in array
    for (i = 0; i < 5; i++) 
    {
        a[i] = i + 1;
    }
  
    // Print elements of array
    for (j = 0; j < 5; j++) 
    {
        cout << a[j] << " ";
    }
    return 0;
}
Producción

1 2 3 4 5 

¿Qué es el puntero?

Un puntero es la representación simbólica de direcciones. Almacena la dirección de las variables o la ubicación de la memoria. Los punteros permiten a los programadores crear y manipular estructuras de datos dinámicas. 

Sintaxis:

tipo de datos *var_name;

Ejemplo:

C++

// C++ program to implement array
#include <iostream>
using namespace std;
  
// Driver code
int main()
{
    int a = 20;
    int* ptr;
    ptr = &a;
    cout << a << " " << ptr << 
            " " << *ptr;
    return 0;
}
Producción

20 0x7ffe2ae2d4ec 20

Comparación de array y puntero

El puntero se puede utilizar para acceder a los elementos de la array, acceder a toda la array mediante la aritmética de punteros hace que el acceso sea más rápido. Hay algunas otras diferencias entre una array y un puntero que se analizan a continuación en la tabla.

No. S. Formación Puntero
1 escriba var_name[tamaño]; escriba * nombre_var;
2 Colección de elementos de tipo de datos similar.  Almacenar la dirección de otra variable.
3 La array se puede inicializar en el momento de la definición. Los punteros no se pueden inicializar en la definición.
4 Una array puede decidir la cantidad de elementos que puede almacenar. El puntero puede almacenar la dirección de una sola variable.
5 Las arrays se asignan en tiempo de compilación. Los punteros se asignan en tiempo de ejecución.
6 La asignación de memoria es secuencial. La asignación de memoria es aleatoria.
7 Las arrays son de naturaleza estática, es decir, no se pueden cambiar de tamaño según los requisitos del usuario. Los punteros son de naturaleza dinámica, es decir, la memoria asignada se puede cambiar de tamaño más adelante.
8 Se puede generar una array de punteros. Se puede generar un puntero a una array.
9 Java Admite el concepto de array. Java no admite punteros.
10 Una array es un grupo de elementos. El puntero no es un grupo de elementos.

Publicación traducida automáticamente

Artículo escrito por rinkalktailor y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *