NULL について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ムンバ

NULL について

#1

投稿記事 by ムンバ » 15年前

こんばんは。お世話になります。<(_ _)>

先日は、#include について、ご意見ありがとうございました。
#include についての種別(種類・呼び名)は
ご指摘頂いた「前処理指令」という名称で(自分)落ち着きました。
ありがとうございました。

今回は、C言語での NULL の扱い方と言いますか(種類・呼び名・属性)?なのですが
自分自身への説明ができません。

例えば、C言語での

time は、関数という呼び方が慣用で
rand は、関数という呼び方が慣用で
const は、修飾子という呼び方が慣用で
main は、関数という呼び方が慣用で
(↑呼び方、間違ってるかもしれませんが、色々と参照した上ですので。)

以上の様な例での
私が自分自身で理解していると思われる範囲内での、分類と言いますか呼び方なのですが

NULL は、どういった種類や呼び名に属するのでしょうか?

以下は、検索をかけたサイトや、教本に記載されていた NULL についての
ご解説の一部を、箇条書きに羅列(られつ)させて頂きました。

・無い事を意味する。
・コード 0x00 の文字(C言語が、文字列の終わりを 0x00 で識別しているため)
・C言語で扱う文字列の終端には0が保存される。これをNULL文字と呼び
 繰り返し文などで文字列の終端を認識するために用いられる。

どうもうまくお伝えできなければ大変申し訳無いのですが
つまりC言語での NULL の扱いなのですが、関数とか修飾子とか、その他の名称?に区別するとすると
NULL は、どういう分類になるのでしょうか?

素朴(そぼく)な疑問で、すみません。

NULL は、0
NULL は、文字列の終端

などと呼ぶのでしたら、それはそれで・・・。^^;

Windows7(Pro 32bit)
Visual C++ 2008

誤字・脱字等御座いましたら、お手数ながらご指摘下さい。
なお、文中に悪意等は御座いませんので
お気に召さない語句や文章など御座いましたら、重ねてご指摘頂けます様、お願い申し上げます。

PS:NULLは、メモリの0番地なのですか? 画像

たかぎ

Re:NULL について

#2

投稿記事 by たかぎ » 15年前

> ・コード 0x00 の文字(C言語が、文字列の終わりを 0x00 で識別しているため)
> ・C言語で扱う文字列の終端には0が保存される。これをNULL文字と呼び
>  繰り返し文などで文字列の終端を認識するために用いられる。

上の2つは明らかな間違いです。
文字列の終端は「ナル文字」で、英語で書けばnull characterですが、マクロのNULLとはまったく別のものです。

NULLというのは、空ポインタ定数式に展開される「マクロ」です。

> PS:NULLは、メモリの0番地なのですか?

多くの実装ではそうなっていますが、規格上は決まっていません。

ムンバ

Re:NULL について

#3

投稿記事 by ムンバ » 15年前

早速のご返答、どうもありがとうございます。

>上の2つは明らかな間違いです。

 http://homepage2.nifty.com/sak/w_sak3/d ... vb_p07.htm
 http://www.skpme.com/c/

 などのページにて、そう記述されていました。

つまり、NULL の定義とは

>空ポインタ定数式に展開される「マクロ」

と、私の環境では認識させて頂いて宜しいのでしょうか?

ムンバ

Re:NULL について

#4

投稿記事 by ムンバ » 15年前

つまり 0 との認識で宜しいのですよね?

ムンバ

Re:NULL について

#5

投稿記事 by ムンバ » 15年前

何度も、申し訳御座いません。

>多くの実装ではそうなっていますが、規格上は決まっていません。

大変申し訳御座いませんが、多くの実装でどうなっているかは私には解りませんが
少ない実装では、どうなってるのでしょうか?


---追記---

たかぎさん、申し訳御座いません。
本日は寝てしまいますので、もしもご返答頂ければ
後日のレスとなってしまいます事、ご勘弁下さい。
すみません。おやすみなさい。(謝 画像

やんち

Re:NULL について

#6

投稿記事 by やんち » 15年前

少し、混同しているみたいですが、

「NULL」 と 「NULL文字」は違う物ですよ。

「NULL文字」について、説明しているサイトの内容を「NULL」について説明していると、
勘違いしそうなので、気をつけてください。

ムンバ

Re:NULL について

#7

投稿記事 by ムンバ » 15年前

NULL の定義を、お聞きしたかっただけです。

やんちさん、ありがとうございます。
私が NULL について説明しているのでは御座いません。
説明ではなくて NULL の定義をお尋ねしてるのです。
ご意見ありがとうございます。

本当にすみません。今日は寝てしまいます。<(_ _)>
おやすみなさい。

---追記---
質問は、NULL文字ではなく、NULLの定義です。
ご了承下さい。
生意気言って、ごめんなさい。 画像

たかぎ

Re:NULL について

#8

投稿記事 by たかぎ » 15年前

> などのページにて、そう記述されていました。

偽情報に惑わされてはいけません。
一次情報にあたりましょう。
http://www.jisc.go.jp/app/pager?%23jps. ... ISNO=X3010

> >空ポインタ定数式に展開される「マクロ」
> と、私の環境では認識させて頂いて宜しいのでしょうか?

処理系に不具合がなければ、あるいは非標準処理系でなければ、常にそうです。

> 大変申し訳御座いませんが、多くの実装でどうなっているかは私には解りませんが
> 少ない実装では、どうなってるのでしょうか?

こちらを参考にしてください。
http://www.kouno.jp/home/c_faq/c5.html#5

やんち

Re:NULL について

#9

投稿記事 by やんち » 15年前

> http://homepage2.nifty.com/sak/w_sak3/d ... vb_p07.htm
> http://www.skpme.com/c/
>
> などのページにて、そう記述されていました。

上2つのページを見ると、どちらも「NULL文字」についての解説である事が確認できます。

「NULL」の説明ではないですよ。

> (この文字をナル文字、またはヌル文字と言います。)

> C 言語関数から返ってくる文字列には、最後に NULL 文字 chr(0) が付いて
> いる

ムンバ

Re:NULL について

#10

投稿記事 by ムンバ » 15年前

深夜までご解説頂きまして、本当にありがとうございます!
(歯磨きしてました。ごめんなさい。<(_ _)>)

>偽情報に惑わされてはいけません。
>一次情報にあたりましょう。

了解です。
おっしゃる通りだと思います。(感謝

ご紹介サイト、ありがとうございます。
見るまでに、しばしお時間下さい。
連休中の休みの日に、ご紹介頂いたサイトを参照させて頂きます。

・・・もう駄目です。くたばります。
ありがとうございました。<(_ _)>

ムンバ

Re:NULL について

#11

投稿記事 by ムンバ » 15年前

あう!?

やんちさん、おっしゃる通り
そのサイトは、NULL文字についての解説なのですが
どうも、うまくお伝えできなくて申し訳御座いません。<(_ _)>

たかぎさんのご解説 No:51361
が、私の聞きたかった事です。

私が記入したリンク先の参考サイトは、あくまでも参考サイトとしてでして・・・
本当に、うまくお伝えできなくて申し訳御座いませんでした。<謝
今後も、ご意見御座いましたら宜しくお願い致します。

またまたお騒がせして、すみませんでした。
ありがとうございました。
おやすみなさい。

閉鎖

“C言語何でも質問掲示板” へ戻る