ベストアンサー NULL 2006/11/10 11:19 NULLと、文字配列の終端文字、\0ヌル文字は、まったく同じものですか? nullはポインタなんですか? \0はヌル文字と呼べばいいんですか? 教えてください。 みんなの回答 (6) 専門家の回答 質問者が選んだベストアンサー ベストアンサー sakusaker7 ベストアンサー率62% (800/1280) 2006/11/10 14:23 回答No.5 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 質問者 お礼 2006/11/15 11:34 回答ありがとうございます。 解りやすいページを紹介してくださって、 ありがとうございます! 通報する ありがとう 0 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 その他の回答 (5) kakusuke ベストアンサー率36% (95/259) 2006/11/12 18:17 回答No.6 NULLはアドレス0x00000000(※0x00が格納されている)のこと、 文字配列の終端は定義上、0x00。 同値ですが、"\0"だと、ヒープ領域に自動的に確保されてしまいます。 ですから、アドレスは異なります。 質問者 お礼 2006/11/15 11:35 回答ありがとうございます。 勉強にになります! 通報する ありがとう 0 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 jacta ベストアンサー率26% (845/3158) 2006/11/10 13:42 回答No.4 一応指摘しておくと、NULLはC/C++の言語仕様で規定されています。ただし、言語本体が持っているのではなく、ヘッダで定義されます。 ちなみに、ヘッダがファイルであるかどうかは言語仕様では規定されていません。 nullの読み方については、日本ではドイツ語の数詞であるnull(0の意味)の方が馴染みがあるので、「ヌル」と発音するのでしょう。英語のnullも、元々はドイツ語からの借用語ですから、「ナル」と読むのは単に訛っているだけですね。 ちなみに、'\0'が「ナル文字」なのは、英語やドイツ語の発音はどうででもよくて、標準規格でそう定義されているから、あくまでも日本語で「ナル文字」なのです。 質問者 お礼 2006/11/15 11:32 回答ありがとうございます。 いろいろ勉強になります。 ありがとうございました。 通報する ありがとう 0 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 chirubou ベストアンサー率37% (189/502) 2006/11/10 11:53 回答No.3 基本的には他の回答者さんの通りで、値としてはゼロですが、型が違うものです。 NULL は正確にいうと C/C++ の言語では規定されていません。基本的には include ファイルで定義されているものです。 以下は余談。 もうずいぶんと昔になりますが(C以前のPL/Iの頃)、入社したてのころ、英語が文字通りペラペラの先輩がいて、「ヌル」と読んだら、「ヌルなんて気持ちが悪い!正しくはナルでしょ!」と怒られました。でもなぜか日本では皆「ヌル」と呼ぶようになってしまいましたネ。 質問者 お礼 2006/11/15 11:29 すばやい回答ありがとうございます。 おもろい余談もありがとう! 通報する ありがとう 0 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 shukugawa ベストアンサー率30% (80/264) 2006/11/10 11:30 回答No.2 「値」は同じですが「型」が違います。 ヌルという言葉のいうそもそもの言葉の意味はゼロです。ですから、ヌルとあれば0という値のことです。ですが C、C++ には型という物が存在するのでその違いがあります。 NULL はポインタが 0 であるということです。Cではその定数として使われます。 ex. char* p = NULL; \0 は文字コードが 0 であるということです。 ex. char c = '\0'; >nullはポインタなんですか? そういう意味のときもあります。前後関係でかわります。 >\0はヌル文字と呼べばいいんですか? そう呼ばれることがあります。 質問者 お礼 2006/11/15 11:28 すばやい回答ありがとうございます。 なんとなくですが、違いが解りました! ありがとうございました。 通報する ありがとう 0 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 jacta ベストアンサー率26% (845/3158) 2006/11/10 11:26 回答No.1 > NULLと、文字配列の終端文字、\0ヌル文字は、まったく同じものですか? まったく別のものです。 混同したとしても、たまたまコンパイルでき、たまたま期待通りに動くことがあるというだけです。 > nullはポインタなんですか? nullというのは、C/C++にはありません。 > \0はヌル文字と呼べばいいんですか? それでも構いませんが、規格上は「ナル文字」です。 質問者 お礼 2006/11/15 11:25 すばやい回答ありがとうございます。 参考にします! ありがとうございました。 通報する ありがとう 0 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 カテゴリ [技術者向] コンピュータープログラミング・開発C・C++・C# 関連するQ&A 文字列の最後がNULL ? C・C++・C# NULLポインタについて C・C++・C# nullの概念 C・C++・C# NULLポインタは0と書かなければだめ? C・C++・C# NULLポインタが0でない処理系とは? C・C++・C# 配列のNULL初期化について C・C++・C# C++のNULLは意味があるの? C・C++・C# NULLとは? ネットワーク #define NULL ((void *)0) の弊害 C・C++・C# (String)nullはnullではなく文字列? Java null ヌル 表記 写真 Mac NULLについて MySQL NULL値を含むソート MySQL for(s=p; *p; p++)の*p(ポインタ)の意味 C・C++・C# nullを文字列にするには? JavaScript NULLの置き換えについて Linux系OS 警告をださずにポインタにnullを渡す方法は? C・C++・C# NULLの定義について C・C++・C# 「NULLポインタ」と「演算の結果としてのアドレス0」との比較 C・C++・C# Excel関数の戻り値でnullを返したい Excel(エクセル)
お礼
回答ありがとうございます。 解りやすいページを紹介してくださって、 ありがとうございます!