GeeksforGeeks

NULL mutató:
A null(0) egészértékű konstansnak a használatától függően különböző jelentése van. Minden esetben egy 0 értékű egészértékű konstansról van szó, csak másképp írják le.
Ha bármelyik mutatót 0-val hasonlítjuk össze, akkor ezzel ellenőrizzük, hogy az adott mutató null mutató-e. Ezt a 0-t ekkor null mutató konstansnak nevezzük. A C szabvány definiálja, hogy a 0 a (void *)-ra való tipizálása mind nullmutató, mind nullmutató konstans.
A NULL makró az “stddef.h” fejlécfájlban található.

Az alábbiakban a NULL mutató ellenőrzésének módjait ismertetjük:

  • A NULL úgy van definiálva, hogy a null mutatóval való egyenlőséget a következőképpen hasonlítja össze:
    if(pointer == NULL)
  • Az alábbi if utasítás implicit módon ellenőrzi, hogy “nem 0”, ezért ezt megfordítjuk, hogy “0” legyen, mint:
    if(!pointer) 

Null Characters(‘\0’):
‘\0’ úgy van definiálva, hogy null karakter. Ez egy olyan karakter, amelynek minden bitje nullára van állítva. Ennek semmi köze a mutatókhoz. Az ‘\0’ (mint minden karakterliterál) egy egészértékű konstans, amelynek értéke nulla.

  1. Az alábbi utasítás ellenőrzi, hogy a karakterláncmutató null karakterre mutat.
    if (!*string_pointer)
  2. Az alábbi utasítás ellenőrzi, hogy a string mutató nem null karakterre mutat-e.
    if (*string_pointer)

A C nyelven a string nem más, mint egy char típusú tömb. Minden egyes karaktert egy 1 byte-os memóriaterületen tárol. Minden tömböt ‘\0’ vagy null karakterrel zárunk le, de ha egy ‘0’-t tárolunk egy karakterlánc belsejében, akkor a C nyelv szerint mindkettő nem ugyanaz. A ‘0’ az ASCII táblázat szerint 48-at jelent, míg a ‘\0’ az ASCII táblázat szerint 0-t jelent.

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 :

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük