GeeksforGeeks

Pointer NULL:
La costante intera zero(0) ha diversi significati a seconda del suo utilizzo. In tutti i casi, è una costante intera con il valore 0, è solo descritta in modi diversi.
Se qualsiasi puntatore viene confrontato con 0, allora questo è un controllo per vedere se il puntatore è un puntatore nullo. Questo 0 è quindi indicato come una costante del puntatore nullo. Lo standard C definisce che 0 è typecast a (void *) è sia un puntatore nullo che una costante di puntatore nullo.
La macro NULL è fornita nel file header “stddef.h”.

Di seguito ci sono i modi per controllare un puntatore NULL:

  • NULL è definito per confrontare un puntatore nullo come:
    if(pointer == NULL)
  • Di seguito l’istruzione if controlla implicitamente “non è 0”, quindi invertiamo il significato di “è 0” come:
    if(!pointer) 

Caratteri nulli(‘\0’):
‘\0’ è definito come un carattere nullo. È un carattere con tutti i bit impostati a zero. Questo non ha niente a che fare con i puntatori. ‘\0’ è (come tutti i letterali di carattere) una costante intera con il valore zero.

  1. La seguente dichiarazione controlla se il puntatore alla stringa sta puntando ad un carattere nullo.
    if (!*string_pointer)
  2. L’istruzione seguente controlla se il puntatore alla stringa punta a un carattere non nullo.
    if (*string_pointer)

Nel linguaggio C la stringa non è altro che un array di tipo char. Memorizza ogni carattere in uno spazio di memoria di 1 byte. Ogni array termina con ‘0’ o carattere nullo, ma se memorizziamo uno ‘0’ all’interno di una stringa entrambi non sono uguali secondo il linguaggio C. ‘0’ significa 48 secondo la tabella ASCII mentre ‘\0’ significa 0 secondo la tabella ASCII.

Below is the C program to print the value of ‘\0’ and ‘0’:

#include <stdio.h>
intmain()
{
printf("\\0 is %d\n", '\0');
printf("0 is %d\n", '0');
return0;
}



Output:

\0 is 00 is 48

Article Tags :

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *