NULL Pointerのことです。
整数の定数0(0)は、使う人によって意味が異なります。
どのポインタも 0 と比較される場合、これはポインタが NULL ポインタであるかどうかを確認するためのものです。 この0はヌルポインタ定数と呼ばれる。 C言語規格では、0を(void *)にタイプキャストしたものはヌルポインタでありヌルポインタ定数であると定義されています。
マクロNULLはヘッダーファイル「stddef.h」で提供されています。
以下は、NULLポインタのチェック方法です。
- NULLは、NULLポインタと等しいと比較するように定義されています。
if(pointer == NULL)
- 以下のif文は暗黙的に「0ではない」ことをチェックしているので、それを逆にして「0である」という意味にします:
if(!pointer)
Null Characters(‘\0’):
‘\0’ とはNULL文字であると定義されています。 すべてのビットが0に設定された文字です。 これはポインタとは関係ありません。
- 以下の文は、文字列ポインタがヌル文字を指しているかどうかをチェックします。
if (!*string_pointer)
- 以下のステートメントは、文字列ポインタが NULL でない文字を指しているかどうかをチェックします。 各文字を1バイトのメモリ空間に格納します。 各配列は「’0’」またはヌル文字で終了しますが、文字列の中に「0」を格納する場合、C言語では両者は同じではありません。 0’はASCIIテーブルでは48を意味しますが、’˶’˶’はASCIIテーブルでは0を意味します。
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;
}
Output:\0 is 00 is 48
Article Tags :