GeeksforGeeks

Ukazatel NULL:
Celočíselná konstanta nula(0) má různé významy v závislosti na tom, jak je použita. Ve všech případech se jedná o celočíselnou konstantu s hodnotou 0, jen je popsána různými způsoby.
Pokud je nějaký ukazatel porovnáván s hodnotou 0, pak se jedná o kontrolu, zda se nejedná o nulový ukazatel. Tato 0 se pak označuje jako konstanta nulového ukazatele. Standard C definuje, že 0 je typecast na (void *) je jak nulový ukazatel, tak konstanta nulového ukazatele.
Makro NULL je uvedeno v hlavičkovém souboru „stddef.h“.

Níže jsou uvedeny způsoby kontroly ukazatele NULL:

  • Makro NULL je definováno pro porovnání rovné nulovému ukazateli jako:
    if(pointer == NULL)
  • Níže uvedený příkaz if implicitně kontroluje „není 0“, takže to obrátíme, aby to znamenalo „je 0“ jako:
    if(!pointer) 

Nulové znaky(‚\0‘):
„\0“ je definováno jako nulový znak. Je to znak se všemi bity nastavenými na nulu. Nemá to nic společného s ukazateli. ‚\0‘ je (stejně jako všechny znakové literály) celočíselná konstanta s hodnotou nula.

  1. Následující příkaz kontroluje, zda ukazatel řetězce ukazuje na nulový znak.
    if (!*string_pointer)
  2. Následující příkaz kontroluje, zda ukazatel řetězce ukazuje na znak, který není nulový.
    if (*string_pointer)

V jazyce C není řetězec nic jiného než pole typu char. V něm je každý ze znaků uložen v paměťovém prostoru o velikosti 1 bajtu. Každé pole je ukončeno znakem ‚\0‘ nebo nulovým znakem, ale pokud uvnitř řetězce uložíme znak ‚0‘, nejsou oba znaky podle jazyka C stejné. ‚0‘ znamená 48 podle tabulky ASCII, zatímco ‚\0‘ znamená 0 podle tabulky 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 :

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *