Hola y bienvenido de nuevo.
Quiero hablar un poco sobre punteros vacíos en esta conferencia.
Sabemos qué es void porque usamos esta palabra
clave cuando hablamos de funciones.
Principalmente, si no queremos devolver ningún dato de una función, usamos void
como parte de la firma de la función. ¿Qué pasa cuando usamos el puntero de evitar? ¿Qué significa esto?
Bueno, el nombre de tipo void significa ausencia de cualquier tipo.
Por lo tanto, un puntero de tipo void star puede contener la dirección de un elemento de datos de cualquier
tipo, por lo que tiene mucha flexibilidad.
Si no sabe lo que va a almacenar como puntero, puede decir
estrella vacía, bastante ingenioso. Por lo general, se usa en funciones para parámetros de función.
Por lo tanto, la estrella void se usa a menudo como un tipo de
parámetro o un tipo
de retorno con funciones, que tratan los datos de una manera independiente del tipo.
Por lo tanto, puede permitir que su función sea más
flexible si necesita punteros de estrellas vacíos.
Básicamente significa que su función puede
tomar más de un tipo de variable, excepto
que no es completamente flexible porque tiene que convertirla de alguna manera cuando la desreferencia.
Por lo tanto, cualquier tipo de puntero se puede pasar como un valor de tipo void, cualquier tipo.
El puntero vacío no sabe a qué tipo de objeto apunta.
Por lo tanto, no se puede eliminar la
referencia directamente, y ahí es donde surge el verdadero hipo junto con la estrella del vacío.
Es excelente para una gran flexibilidad para diferentes tipos de datos, pero solo puede
usarlo si conoce el tipo de datos.
Por lo tanto, debe proporcionar una
conversión explícita al puntero cuando lo desreferencia.
La dirección de una variable de tipo int se puede almacenar en una variable de
puntero de tipo void porque void star significa que cualquier tipo de datos se puede almacenar allí.
Entonces, cuando desee acceder al valor del intervalo en la
dirección almacenada en el puntero de estrella vacía, primero debe convertirlo en un
puntero de tipo int.
En este ejemplo, vamos a ver cómo se usa el puntero de estrella vacío.
Tenemos tres variables que definimos, un número entero y un flotante y un carácter.
Ahora vamos a crear un puntero de estrella vacío.
Debido a que el puntero es de tipo void, podemos asignarle la dirección
de i que es un int. Podemos asignarle la dirección de
f, que es un flotante y podemos asignarle la dirección de carácter
o ch que es un carácter.
El único problema es que cuando eliminas la referencia, debes conocer ese tipo, pero aún ves la ventaja aquí.
La ventaja aquí es que solo tenemos que crear un tipo de
variable y podemos almacenar varias direcciones diferentes en él.
Pero siempre que quieras usarlo, debes usarlo en estrella.
Y verá aquí cuando imprimimos los datos, que la estrella interna está lanzando
el puntero y luego lo estamos quitando la referencia, la estrella fuera del paréntesis interno
está quitando la referencia. Así que imprimirá el valor
al que apunta el puntero v,
pero primero lo convertirá en el tipo correcto.
Entonces, en los tres de estos punteros v, se imprimirá para la hormiga, se imprimirá 10.
Para el flotador, sacará 2. 34.
Y para el ch, char, imprimirá k.
Veremos que el puntero void se usa más en los parámetros
de función, como dije, en los tipos de retorno.
Y ese es realmente el valor cuando se trata de usar solo
un puntero de estrella vacío en una declaración
y asignar muchos tipos de datos diferentes. Gracias.