重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

NULLと、文字配列の終端文字、\0ヌル文字は、まったく同じものですか?

nullはポインタなんですか?

\0はヌル文字と呼べばいいんですか?

教えてください。

A 回答 (6件)

NULLに関してはいろいろあるようでFAQ(よくある質問とその回答)の一項目にもなっています。



C FAQ 5
http://www.kouno.jp/home/c_faq/c5.html

NULL と '\0' の違い
http://www.kis-lab.com/serikashiki/C/C01.html

CとC++で微妙にNULLの定義が違ってたりしますがそれに関してはこちらを。

C MAGAZINE - プログラミングの禁じ手Web版 C++編 - 理念の誤解に関するパターン
http://www.cmagazine.jp/src/kinjite/cpp/idea.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
解りやすいページを紹介してくださって、
ありがとうございます!

お礼日時:2006/11/15 11:34

NULLはアドレス0x00000000(※0x00が格納されている)のこと、


文字配列の終端は定義上、0x00。
同値ですが、"\0"だと、ヒープ領域に自動的に確保されてしまいます。
ですから、アドレスは異なります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
勉強にになります!

お礼日時:2006/11/15 11:35

一応指摘しておくと、NULLはC/C++の言語仕様で規定されています。

ただし、言語本体が持っているのではなく、ヘッダで定義されます。
ちなみに、ヘッダがファイルであるかどうかは言語仕様では規定されていません。

nullの読み方については、日本ではドイツ語の数詞であるnull(0の意味)の方が馴染みがあるので、「ヌル」と発音するのでしょう。英語のnullも、元々はドイツ語からの借用語ですから、「ナル」と読むのは単に訛っているだけですね。
ちなみに、'\0'が「ナル文字」なのは、英語やドイツ語の発音はどうででもよくて、標準規格でそう定義されているから、あくまでも日本語で「ナル文字」なのです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
いろいろ勉強になります。
ありがとうございました。

お礼日時:2006/11/15 11:32

基本的には他の回答者さんの通りで、値としてはゼロですが、型が違うものです。



NULL は正確にいうと C/C++ の言語では規定されていません。基本的には include ファイルで定義されているものです。

以下は余談。

もうずいぶんと昔になりますが(C以前のPL/Iの頃)、入社したてのころ、英語が文字通りペラペラの先輩がいて、「ヌル」と読んだら、「ヌルなんて気持ちが悪い!正しくはナルでしょ!」と怒られました。でもなぜか日本では皆「ヌル」と呼ぶようになってしまいましたネ。
    • good
    • 1
この回答へのお礼

すばやい回答ありがとうございます。
おもろい余談もありがとう!

お礼日時:2006/11/15 11:29

「値」は同じですが「型」が違います。



ヌルという言葉のいうそもそもの言葉の意味はゼロです。ですから、ヌルとあれば0という値のことです。ですが C、C++ には型という物が存在するのでその違いがあります。

NULL はポインタが 0 であるということです。Cではその定数として使われます。
ex. char* p = NULL;

\0 は文字コードが 0 であるということです。
ex. char c = '\0';

>nullはポインタなんですか?
そういう意味のときもあります。前後関係でかわります。

>\0はヌル文字と呼べばいいんですか?
そう呼ばれることがあります。
    • good
    • 0
この回答へのお礼

すばやい回答ありがとうございます。
なんとなくですが、違いが解りました!
ありがとうございました。

お礼日時:2006/11/15 11:28

> NULLと、文字配列の終端文字、\0ヌル文字は、まったく同じものですか?



まったく別のものです。
混同したとしても、たまたまコンパイルでき、たまたま期待通りに動くことがあるというだけです。

> nullはポインタなんですか?

nullというのは、C/C++にはありません。

> \0はヌル文字と呼べばいいんですか?

それでも構いませんが、規格上は「ナル文字」です。
    • good
    • 0
この回答へのお礼

すばやい回答ありがとうございます。
参考にします!
ありがとうございました。

お礼日時:2006/11/15 11:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!