Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo definir NULL

Cómo definir NULL

Cómo definir NULL

Cómo definir NULL

Como estilo, muchas personas no están dispuestas a que aparezcan ceros sin modificar en todas partes del programa. Por lo tanto, la macro de preprocesador NULL se define (en y varios otros archivos de encabezado) como una constante de puntero nulo, generalmente 0 o ((void *)0). Las personas que deseen distinguir entre el número entero 0 y el puntero nulo 0 pueden utilizar NULL siempre que se espere un puntero nulo.

Usar NULL es solo una convención de estilo; el preprocesador devuelve todos los NULL a 0 y el compilador aún maneja 0 en el contexto del puntero como se describió anteriormente. En particular, todavía se requiere la conversión de tipos antes de NULL (como antes de 0) en los argumentos de llamada de función.

NULL solo se puede utilizar como constantes de puntero

Extensión 1: saca los 7 números comenzando desde la quinta posición de un número y establece las posiciones restantes en 0

Solución: #include

main()

{

int n

printf(?input n:?

p>

scanf(?d?,amp; n);

n=namp; ;5;

printf(?d\n?, n);

};

Extensión 1: puntero NULL

El puntero NULL es un puntero sin tipo y el valor es 0. Un puntero tiene dos atributos: valor de dirección y tipo de puntero. Las funciones de los dos son: 1. El valor de la dirección identifica la primera dirección de la variable (el valor de la dirección del puntero ocupa 4 bytes en un sistema de 32 bits 2. El tipo de puntero le dice al compilador cómo procesar los datos posteriores); acceso (matriz de tipo int Es diferente de la matriz de tipo flotante; el acceso a la matriz también es diferente del acceso a la estructura; etc.).

La apariencia de NULL es una convención. De hecho, no es una palabra clave en el lenguaje C; generalmente se dice que asignar un puntero a NULL es "dejar el puntero en el aire". De esta manera, el puntero ya no puede realizar ningún acceso a datos.

Existe un tipo de error que es relativamente fácil de cometer en el trabajo de programación: utilizar direcciones de puntero sin una actualización y asignación correctas, lo que a menudo conduce a consecuencias graves (manchando erróneamente el área de memoria). Por lo tanto, un buen hábito es que cuando un puntero toma un descanso de su trabajo, primero lo asigne a NULL, y cuando se use nuevamente, lo reasigne y realice la conversión del tipo de puntero.

Como se mencionó anteriormente, el puntero NULL ya no puede realizar ningún acceso a datos. De hecho, depende de la función del compilador. La posición 0 apunta al inicio del programa. Para diferentes compiladores, los resultados de la operación del puntero NULL son diferentes: algunos no pueden leer ni escribir, otros son de solo lectura e incluso pueden leer y escribir. Los compiladores están determinados por las personas.

Para citar las palabras del internauta win_hate en el tema "Acerca de la imprecisión de NULL": "Si alguien no es riguroso, debe ser el programador quien lee la posición 0, no C". Una de las filosofías de diseño de C es: "Los programadores saben lo que están haciendo, sin cinturones de seguridad".

?;