Fundamentos de punteros en programación c

Video: Fundamentos de Programación II - Introducción a punteros - Fernando Perñiguez

Memorizar esta frase: Un puntero es una variable que contiene una ubicación de memoria. Debe aceptar la locura del puntero antes de continuar. Es cierto, aunque se puede conseguir en una variable&rsquo-s ubicación de memoria, o dirección, mediante el uso de la & operador, el puntero es una mucho más poderosa bestia.

Video: Fundamentos de programación. Punteros (Parte 1 de 3)

Un puntero es un tipo de variable. Al igual que otras variables, se debe declarar en el código. Además, debe ser inicializado antes&rsquo-s utilizado. Esa última parte es muy importante, pero primero la declaración tiene el siguiente formato:

escribe un nombre-

Como cuando se declara una variable, la tipo identifica el puntero como un char, int, float, y así sucesivamente. los nombre es la variable de puntero&rsquo-s nombre, que debe ser único, al igual que cualquier otro nombre de la variable. El asterisco identifica la variable como un puntero, no como una variable normal.

La siguiente línea declara un puntero char, compañero:

char * sidekick-

Y esta línea crea un doble puntero:

doble arcoiris-

Para inicializar un puntero, debe establecer su valor, al igual que cualquier otra variable. La gran diferencia es que un puntero se inicializa a la posición de memoria. Que ISN ubicación&rsquo-t un punto aleatorio en la memoria, sino más bien la dirección de otra variable dentro del programa. Por ejemplo:

sidekick = &dirigir-

La sentencia anterior inicializa el compañero variable en la dirección de la dirigir variable. Ambas variables son tipos-Char si no, el compilador gruñir como un gato mojado. Después de ejecución de la sentencia, la compañero puntero contiene la dirección de la dirigir variable.

Si tu&rsquo re-lectura de este texto y simplemente asentir con la cabeza sin entender nada, bueno! Eso significa que&tiempo rsquo-s para un ejemplo.

El código fuente en un ejemplo incluye comentarios para ayudar a describir dos líneas cruciales. El programa realmente doesn&rsquo-t hacer otra cosa que probar que el puntero compañero contiene la dirección o ubicación de la memoria, de la variable dirigir.

UN EJEMPLO

#include int main () {char plomo-char * compañero de plomo = `A`- / * inicializar Char variables * / compañero = &plomo / * inicializar puntero IMPORTANTE! * / Printf ("Sobre `plomo` variables: n") -printf ("Sizett% ldn", Sizeof (plomo)) - printf ("Contentst% cn", Plomo) -printf ("Locationt% pn",&plomo) -printf ("Y la variable `sidekick`: n") -printf ("Contentst% pn", Compañero) -Retorno (0) -}

Otras cosas a tener en cuenta: La línea 12 utiliza dos secuencias pestaña de escape para alinear la salida. Además, Don&rsquo-t olvidar el & en la línea 14, que obtiene la variable&rsquo-s de direcciones.

Ejercicio 1: Escriba el código fuente de un ejemplo en su editor. Generar y ejecutar.

aquí&rsquo-s la salida:

Video: Como usar correctamente los punteros en C

Sobre `plomo` variables: Tamaño variable de 1Contents alocation 0x7fff5fbff8ffAnd `compañero`: Contenido 0x7fff5fbff8ff

Las direcciones (en el ejemplo) son únicos para cada sistema, pero el punto clave a destacar es que el contenido del puntero compañero son iguales a la posición de memoria de la variable dirigir. Ese&rsquo-s debido a la asignación, o inicialización, que tiene lugar en la Línea 9 en el código.

Video: 82. Programación en C++ || Punteros || Declaración de Punteros

No tendría sentido para un puntero para contener simplemente una dirección de memoria. El puntero también puede mirar en esa dirección y determinar el valor que&rsquo-s almacenados allí. Para que esto ocurra, el operador * se antepone al puntero&rsquo-s nombre de la variable.

Ejercicio 2: Modificar el código fuente del Ejercicio 1 añadiendo la siguiente declaración después de Línea 16:

printf ("Peek Valuet% cn",*compañero)-

Generar y ejecutar. aquí&rsquo-s la salida:

Sobre `plomo` variables: Tamaño variable de 1Contents alocation 0x7fff5fbff8ffAnd `compañero`: Contenido valor 0x7fff5fbff8ffPeek A

Cuando se especifica el * (asterisco) antes de que una variable de puntero inicializado&rsquo-s nombre, los resultados son los contenidos de la dirección. El valor se interpreta en función del tipo de puntero. En este ejemplo, *compañero representa el valor carbón almacenado en una ubicación de memoria mantiene en el compañero variable, que es realmente lo mismo que la variable posición de memoria dirigir.

Ponerlo de otra forma:

  • Una variable puntero contiene una ubicación de memoria.

  • los *puntero asoma variable en el valor almacenado en la localización de memoria.

Artículos Relacionados