ここから本文です

C言語,プログラミング

フクナガ ユウジさん

2011/9/500:22:21

C言語,プログラミング

NULL,'\0',EOF
それぞれの使いどころ,使い方の違いがわかりません.
詳しい方教えてください.よろしくお願いします.

閲覧数:
1,234
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

ちえでつさん

2011/9/500:53:41

NULL は、空を表す特別な意味で用いられる事が多く、データの長さに関係なく「からっぽ」を使う場合に用います。
Cだと、ポインタを入れる変数などに多いです。ポインタはCPUのアーキテクチャにより長さが異なるので、簡単に言えば実行環境によって 32bit だったり、64bit だったりします。
データの長さに依存せず、プログラム上の意味として「からっぽ」を表します。

'\0' は、文字コード 0 の文字 = 8bit ですので、あくまでも文字の1要素です。
UNIX/Linux では、文字列は文字の集合で、終端が \0 という規定になっていますから、 "ABC" も実はメモリー上にには、'A', 'B', 'C', '\0' と4文字分のデータが展開されます。文字列の終端を表します。

EOF は End of File の意味で使う事が多く、これは具体的な値の規定はありません。処理系に依存します。
ファイルを読み込んでいて、EOF で定義したデータ並びがあると、そこがファイルの終端だという判断に使います。
-1 であったり、0xFFFFFFFF とか様々な値がありますが、EOF として事前に定義された値を用います。
feof() などは、そのルールに従い取り込んだデータに上記のパターンがない間は、0 を返すといった処理をしています。

質問した人からのコメント

2011/9/5 05:50:11

感謝 詳しい回答ありがとうございます.私の勉強不足で少々わからないところもありますが,参考に勉強させていただきます.助かりました.

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる