Red de conocimiento informático - Problemas con los teléfonos móviles - Vacío público

Vacío público

Tipo de vacío y puntero de vacío (extractos resumidos de Internet, no originales)

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;