Crear y usar una variedad de punteros en c

Crear y usar una variedad de punteros en c
Las matrices y los punteros se encuentran entre las estructuras de datos más fundamentales en el lenguaje C. Nos permiten crear programas flexibles y fáciles de administrar con solo unas pocas líneas de código.

La mayoría de nosotros estamos familiarizados con la creación de matrices con tipos de datos como enteros, caracteres o flotadores. Esta guía le mostrará cómo crear una variedad de punteros y usarla para almacenar datos.

Cómo crear una matriz

Podemos definir una matriz como una colección de artículos. Por ejemplo, una matriz puede almacenar nombres de 100 personas y tal.

Para declarar una matriz en C, usamos la sintaxis:

DataType arrname [arrsize];

Aquí, el tipo de datos se refiere al tipo de matriz, que puede ser un entero, flotante, un personaje o un puntero.

El nombre de Arrn se refiere al nombre dado a la matriz, que puede ser cualquier término descriptivo para la variable, siempre que obedezca las reglas de nombrar una variable en C.

Finalmente, el ArrSize se refiere al número total de artículos para almacenar en la matriz. Este valor es constante e inmutable una vez declarado.

Por ejemplo, podemos definir una matriz de enteros para almacenar 10 valores como:

int myArray [10];

También podemos definir e inicializar una matriz en la misma línea. Por ejemplo, para definir la matriz anterior y llenarla con los valores requeridos, podemos hacer:

int myArray [10] = 1,2,3,4,5,6,7,8,9,10;

También podemos hacer lo mismo sin especificar explícitamente el tamaño de la matriz. Considere el ejemplo a continuación:

int myArray [] = 1,2,3,4,56,7,8,9,10;

Para acceder a los elementos en una matriz, utilizamos el método de indexación especificando el nombre de la matriz seguido del índice del elemento al que deseamos acceder.

Por ejemplo, para acceder al elemento en el índice 5, podemos hacer

printf ("%d", myArray [5]);

En este caso, debería devolver el 6th Artículo en la matriz porque la indexación de matriz comienza en 0. Por lo tanto, el primer elemento es en 0, el segundo elemento en 1, y así sucesivamente.

También podemos usar el método anterior para modificar los valores en una matriz.

Aquí hay un ejemplo:

myArray [5] = 5;

La declaración anterior cambiará el valor de la matriz en el índice 5 a 5.

Cointers C

Los punteros son variables que podemos usar para almacenar direcciones de valores en un programa. Por ejemplo, cuando define una variable, se le asigna una dirección de memoria a la que puede acceder utilizando el
&varname;

Por ejemplo:

int i = 10;
printf ("%p", & i);

El código anterior debe dar la dirección de la variable "I". Tenga en cuenta que esta dirección puede variar cada vez que ejecuta el programa.

Aquí hay una dirección de muestra:

0061ff1c

Declarando un puntero

Para declarar un puntero en C, usamos el tipo seguido de un asterisco y el nombre de la variable.

Por ejemplo:

int *ptr, i;

Para asignar una dirección al puntero, podemos hacer:

int i = 10;
ptr = & i;

En el ejemplo anterior, establecemos la dirección de la variable "I" a *PTR.

int *ptr, i;
i = 10;
ptr = & i;
printf ("%p", *ptr);

Acceso a valores desde un puntero

Podemos acceder a los valores almacenados en una dirección de puntero utilizando la notación de asterisco (*). Por ejemplo:

int *ptr, i;
i = 10;
ptr = & i;
printf ("%d", *ptr);

En este caso, obtenemos el valor específico almacenado y no la dirección del valor.

Variedad de punteros

A medida que creamos una matriz de valores enteros en los ejemplos anteriores, podemos crear una matriz de un puntero básicamente, una matriz que almacena direcciones de memoria.

Para hacer esto, podemos usar la sintaxis:

int *PtrRArray [10];

En este ejemplo, tenemos una variedad de 10 punteros enteros, lo que le permite almacenar direcciones de memoria de 5 variables enteros.

Por ejemplo, podemos tener el código simple a continuación:

#incluir
int main ()
int *PtrRArray [4];
int w = 100, x = 200, y = 300, z = 400;
PtrRArray [0] = & w;
PtrRArray [1] = & x;
PtrRArray [2] = & y;
PtrRArray [3] = & z;
para (int i = 0; i< 4; i++)
printf ("El valor %d tiene el address %d \ n", *ptrRArray [i], ptrRArray [i]);

regresar 0;

Una vez que compilamos y ejecutamos el código anterior, debemos obtener resultados similares a los siguientes:

El valor 100 tiene el Adddress 6422280
El valor 200 tiene el Adddress 6422276
El valor 300 tiene el Adddress 6422272
El valor 400 tiene el Adddress 6422268

Usando este método, podemos acceder a las direcciones y los valores almacenados en el puntero de la matriz.

Conclusión

En esta breve guía, discutimos cómo usar matrices y punteros en el idioma C. También discutimos cómo crear una variedad de punteros para almacenar direcciones para varios valores.