Hola y bienvenido de nuevo. En esta conferencia, quiero proporcionar una demostración
o solución de nuestro desafío anterior que lo familiarizó con la sintaxis
del puntero, el concepto de un puntero, la asignación
de una dirección a un puntero y luego mostrando algunos resultados para un puntero.
Así que vamos a mostrar bloques de código, y vamos a crear un nuevo proyecto, un
nuevo proyecto en c que se llamará simplemente conceptos básicos de punteros, porque hará los conceptos básicos de punteros.
Entonces sabemos cómo hacer todo esto. Vamos a seleccionar la aplicación de
consola, asegúrate de que tenemos cy simplemente llamamos a
este puntero basics.
Este concepto de puntero es realmente importante.
Así que comenzamos lentamente y seguimos a partir de ahí.
Así que, aquí vamos. Aquí tenemos nuestro main.
Ahora todo lo que queremos hacer es crear una variable
entera y luego una variable de puntero.
Y queremos inicializar ambos.
Entonces, lo primero que voy a hacer es crear una variable
entera y solo la voy a nombrar número o num.
Y voy a inicializar esto a 150.
Para crear una variable de puntero, debe ser del mismo tipo.
Para crear un puntero, todo lo que tiene que hacer es hacer el tipo de datos y luego
el asterisco en la declaración y luego simplemente llamaremos a este pnum para el número de puntero.
Por lo general, desea comenzar sus variables que son punteros con el prefijo p.
Y es una buena idea que siempre que cree sus punteros los inicialice a nulos.
Null es una palabra clave especial que dice que
el puntero no apunta a nada.
Una vez que tenemos nuestras
dos variables inicializadas, nuestro puntero num integer y nuestro puntero num integer,
entonces queremos asignar algo a nuestro puntero.
Porque en este momento nuestro puntero no apunta a nada en la memoria.
Y desea asegurarse de que lo que sea que asigne
a su puntero, que realmente tenga una ubicación de memoria
para ello, memoria asignada.
Entonces, en este caso, si vamos a asignarle num, num
es un entero en la línea 6 que tiene memoria asignada.
C asignará memoria automáticamente para cualquier
declaración de variable.
Incluso este puntero en la línea 7 tiene memoria asignada solo para almacenar el puntero.
No significa necesariamente que tenga memoria asignada para lo que apunta.
Entonces, para firmar pnum, un valor de una
dirección, todo lo que tenemos que hacer es decir que pnum
es igual a ampersand, que es la
dirección del operador y
queremos asignarle la dirección de num.
Num ya tiene una memoria asignada y la declaramos.
Entonces, la línea 9 simplemente asigna la dirección de num a un puntero.
Es tan simple como eso.
Ahora, cuando crea un puntero y le
asigna una dirección, también puede crear su propia memoria dinámica
y asignarla. Pero eso es para otro ejercicio. En este
caso, ya tenemos nuestra variable creada. Vamos a señalar el valor de esa variable.
Necesitamos asignar la dirección de num.
Ahora, después de que imprimimos, hicimos nuestras asignaciones, inicializamos todo.
Ahora solo queremos imprimir algo de información.
Entonces vamos a usar printf y solo voy a decir primero que
quiero imprimir el valor de la dirección pnum.
Ahora, cuál es el valor pnum para la dirección,
pero la dirección pnum. Y aquí realmente podemos decir
la dirección de un
puntero, así que vamos a decir p. Y luego todo lo que tenemos que hacer
es poner aquí, tenemos que poner la dirección de nuestro puntero.
Entonces aquí diríamos dirección de pnum.
Y qué nos va a dar esto, esto nos va a dar la dirección del
puntero que estaba asignando la memoria. No es
el valor del valor del puntero. El valor del puntero también será una dirección, será la dirección de num.
Entonces aquí imprimamos primero num también. Así que
aquí vamos a imprimir la dirección numérica.
Y nuevamente, queremos imprimir una dirección, digamos porcentaje p.
Y luego vamos a decir la dirección
de la dirección de num.
Y la dirección de num también debe coincidir con el valor de pnum.
La dirección de pnum será diferente porque ese es el puntero en la memoria.
Entonces vamos a imprimir el valor de pnum
o debería decir la dirección de pnum.
Y luego
también imprimiremos el valor del pnum.
variable y esto también será una dirección, y esto
solo será pnum.
Y luego lo último que queremos
mostrar es que queremos mostrar el valor al que apunta pnum.
Entonces, el valor de lo que apunta pnum.
Y este va a ser realmente el tipo al que
apunta como un número entero. Entonces esto sería el porcentaje d.
Y agreguemos algunos avances de línea para que podamos leer esto.
Y lo que en realidad apunta a la forma en que obtiene ese valor es el operador de indirección.
Entonces haces el asterisco y luego el nombre del puntero.
Y eso le dirá a qué apunta el valor, que debería ser 150.
Entonces, solo para reiterar aquí en la línea
11, estamos imprimiendo la dirección de num.
Será un número o un número hexadecimal.
Luego, en la línea 12, imprimimos la dirección de pnum,
que se asignó en la línea
siete porque tiene que almacenar el puntero pnum en algún lugar.
Luego imprimimos el valor del puntero que es solo la dirección de num.
Y cuando imprimimos la dirección de pnum, tenemos que usar el ampersand.
Y luego imprimimos el valor de lo que apunta
pnum al que está desreferenciando usando el operador de indirección.
Así que ahora sigamos adelante
y construyamos esto y ejecútelo y deberíamos ver todos estos valores.
Entonces, la dirección
numérica solo este número en la memoria es 0060FF0C.
La dirección de pnum
será algo diferente, 0060FF08.
El valor de pnum, que es la dirección de num, debe coincidir con la
primera línea y hace FFOC.
Y luego el valor de lo que apunta pnum cuál es 150.
Entonces, un puntero realmente puede tener tres valores. Su dirección, el
valor del puntero que es otra dirección y
luego el valor de lo que apunta esa dirección.
Y nuevamente, ampersand siempre le da la dirección
en la memoria.
Pnum contiene una dirección. Puede imprimirlo con solo
decir el nombre del puntero.
Y luego, para obtener el valor al que apunta, usa el operador de
indirección, el asterisco y eso le dará ese valor que es 150.
Así que estos son los conceptos básicos de los punteros, que le ayudarán a familiarizarse con la sintaxis.
Cuándo usar la dirección de operador y cuándo usar el operador
de indirección y luego tratar de explicar solo este concepto de puntero y cómo un puntero contiene
el valor de una dirección, el valor de un puntero es una dirección.
Así que juegue con esto,
comprenda esta sintaxis, los punteros son un concepto realmente importante. Gracias.