NULLポインタ

C

ポインタを利用するときは、必ずその値が指し示すアドレスに値がある必要がある。

int a;
int *p;
a = *p; //ポインタがなにもないアドレスを指し示している為エラー

プログラム内で、どこも指し示していないことを明示する場合に使う。
NULLポインタはどの型のポインタにも格納できる。

int *p = NULL;

ポインタpが有効かどうかを調べるには、論理演算を使って調べることができる。

#include <stdio.h>
#include <string.h>

int main(void)
{
	
	char s[] = "test aaa";
	char c = 'd'; //ダブルクォートで囲むとエラーになる
	char *p = NULL;
	
	printf("文字列 %s の中に文字 %c ", s, c);
	
	p = strchr(s, c);
	
	if (!p) {
		printf("なし\n");
	} else {
		printf("あり\n");
	}
	
	//出力結果は「なし」になる。
	
}

strchrの関数は以下の動きをする
strの中からchrを検索して最初に発見した文字以降のアドレスを返す。文字を発見できなかった場合はNULL(\0)を返す。
尚、一般的には検索する文字はint型にcastする。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です