Vacío público
1. Descripción general
Muchos principiantes no comprenden los tipos de puntero de vacío y vacío en el lenguaje C/C++. entonces en Se produjeron algunos errores durante el uso. Este artículo explicará el significado profundo de la palabra clave void e introducirá en detalle el uso y las técnicas de los tipos de puntero void y void.
2. El significado de void
El significado literal de void es "sin tipo", void * es un "puntero sin tipo" y void * puede apuntar a cualquier tipo de datos.
void es más o menos un "comentario" y una restricción del programa porque nadie ha definido nunca una variable void, así que intentemos definirla:
void a;
Esta línea provocará un error al compilar, indicando "Uso ilegal del tipo 'void'". Sin embargo, incluso si void a se compila sin errores, no tiene ningún significado real.
La función real de void es:
(1) Limitar el valor de retorno de la función
(2) Limitar los parámetros de la función.
Explicaremos estos dos puntos en la Parte 3.
Como todos sabemos, si los tipos de punteros p1 y p2 son los mismos, entonces podemos asignarlos directamente entre sí; si p1 y p2 apuntan a diferentes tipos de datos, se deben usar tipos forzados
Operador de conversión, convierte el tipo de puntero en el lado derecho del operador de asignación al tipo de puntero en el lado izquierdo.
Por ejemplo:
float *p1;
int *p2;
p1 = p2;
p1 La instrucción = p2 dará un error al compilar: "'=': no se puede convertir de 'int *' a 'float *'". ", debe cambiarse a:
p1 = (float *)p2;
A diferencia de void *, se le puede asignar cualquier tipo de puntero directamente sin conversión:
vacío *p1;
int *p2;
p1 = p2;