GeeksforGeeks

NULL Pointer:
Constanta întreagă zero(0) are semnificații diferite în funcție de modul în care este utilizată. În toate cazurile, este o constantă întreagă cu valoarea 0, doar că este descrisă în moduri diferite.
În cazul în care orice pointer este comparat cu 0, atunci aceasta este o verificare pentru a vedea dacă pointerul este un pointer nul. Acest 0 se numește atunci o constantă de pointer nul. Standardul C definește că 0 este tipărit în (void *) este atât un pointer nul, cât și o constantă de pointer nul.
Macro NULL este furnizat în fișierul antet „stddef.h”.

Mai jos sunt prezentate modalitățile de verificare a unui pointer NULL:

  • NULL este definit pentru a compara egal cu un pointer nul ca:
    if(pointer == NULL)
  • Declarația if de mai jos verifică implicit „nu este 0”, așa că inversăm acest lucru pentru a însemna „este 0” ca:
    if(!pointer) 

Caractere nule(‘\0’):
‘\0’ este definit ca fiind un caracter nul. Acesta este un caracter cu toți biții setați la zero. Acest lucru nu are nimic de-a face cu indicatorii. ‘\0’ este (la fel ca toate caracterele literale) o constantă întreagă cu valoarea zero.

  1. Declarația de mai jos verifică dacă pointerul de șir de caractere este îndreptat către un caracter nul.
    if (!*string_pointer)
  2. Declarația de mai jos verifică dacă pointerul de șir indică un caracter nenul.
    if (*string_pointer)

În limbajul C șirul nu este altceva decât o matrice de tip char. Acesta stochează fiecare dintre caractere într-un spațiu de memorie de 1 octet. Fiecare matrice se termină cu „\0” sau cu caracterul nul, dar dacă stocăm un „0” în interiorul unui șir de caractere, ambele nu sunt identice conform limbajului C. ‘0’ înseamnă 48 în conformitate cu tabelul ASCII, în timp ce ‘\0’ înseamnă 0 în conformitate cu tabelul 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 :

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *