NULLL Pointer:
A constante inteira zero(0) tem significados diferentes, dependendo de ser usada. Em todos os casos, é uma constante inteira com o valor 0, apenas descrita de maneiras diferentes.
Se algum ponteiro estiver sendo comparado com 0, então esta é uma verificação para ver se o ponteiro é um ponteiro nulo. Este 0 é então referido como uma constante de ponteiro nulo. A norma C define que 0 é datilografado para (void *) é tanto um ponteiro nulo como uma constante de ponteiro nulo.
A macro NULL é fornecida no ficheiro de cabeçalho “stddef.h”.
Below são as formas de verificação para um ponteiro NULL:
- NULL é definido para comparar igual a um ponteiro nulo como:
if(pointer == NULL)
- Below if statement implicitly checks “is not 0”, então revertemos isso para significar “is 0” como:
if(!pointer)
NULOS Caracteres(‘\0’):
‘\0′ está definido para ser um caracter nulo. É um caractere com todos os bits definidos como zero. Isto não tem nada a ver com apontadores. \0’ é (como todos os caracteres literais) uma constante inteira com o valor zero.
- Below verifica se o ponteiro da string está apontando para um caractere nulo.
if (!*string_pointer)
- Alargo verifica se o ponteiro da string está apontando para um caractere não-nulo.
if (*string_pointer)
Em linguagem C a string não é nada além de um array do tipo char. Ele armazena cada um dos caracteres em um espaço de memória de 1 byte. Cada array é terminado com ‘\0’ ou caracter nulo mas se armazenarmos um ‘0’ dentro de uma string ambos não são iguais de acordo com a linguagem C. ‘0’ significa 48 de acordo com a tabela ASCII enquanto que ‘\0’ significa 0 de acordo com a tabela ASCII.
Below is the C program to print the value of ‘\0’ and ‘0’:
#include <stdio.h>
int
main()
{
printf
(
"\\0 is %d\n"
,
'\0'
);
printf
(
"0 is %d\n"
,
'0'
);
return
0;
}
\0 is 00 is 48