GeeksforGeeks

NULL pekare:
Integerkonstanten noll(0) har olika betydelser beroende på hur den används. I alla fall är det en heltalskonstant med värdet 0, den beskrivs bara på olika sätt.
Om någon pekare jämförs med 0 är detta en kontroll för att se om pekaren är en nullpekare. Detta 0 kallas då för en nollpekarkonstant. C-standarden definierar att 0 typcastas till (void *) är både en nollpekare och en nollpekarkonstant.
Makrot NULL finns i headerfilen ”stddef.h”.

Nedan följer sätt att kontrollera om det finns en NULL-pekare:

  • NULL är definierat för att jämföra lika med en nullpekare som:
    if(pointer == NULL)
  • Underliggande if-anvisning kontrollerar implicit ”is not 0”, så vi vänder på det för att betyda ”is 0” som:
    if(!pointer) 

Null Characters(’\0’):
”\0” är definierat som ett nolltecken. Det är ett tecken med alla bitar inställda på noll. Detta har inget att göra med pekare. ’\0’ är (liksom alla teckenlitteraler) en heltalskonstant med värdet noll.

  1. Understående uttalande kontrollerar om strängpekaren pekar på ett nolltecken.
    if (!*string_pointer)
  2. Understående uttalande kontrollerar om strängpekaren pekar på ett tecken som inte är noll.
    if (*string_pointer)

I C-språket är sträng inget annat än en array av typen char. Den lagrar varje tecken i ett minnesutrymme på 1 byte. Varje array avslutas med ”\0” eller ett nolltecken, men om vi lagrar en ”0” i en sträng är båda inte samma sak enligt C-språket. ”0” betyder 48 enligt ASCII-tabellen medan ”\0” betyder 0 enligt ASCII-tabellen.

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 :

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *