![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.5
- 回答日時:
#1です。
混乱されるといけないので他の方と合わせましょうか。
NULL と "" について「文字を数えたり」ということ
でしたので「同じ」としました。
厳密には他の方が仰るとおりです。
『NULLポインタ』に限らず『NULL値』というのもあります。
つまり未定,不明な場合をNULLという事にしてるのです。
データベースご存じですか?Excelを高度にシステム化
したような奴なのですが、これに「非NULL制約」という
ものがあるんです。""はNULLではないのですが、
この制約がかかってる場所が""(長さ0文字列)だと
エラーになります。
つまり、NULLと""は
コンピュータ寄りで考えると別物、意味で考えると同じ
ということです。
No.4
- 回答日時:
NULLはポインタです。
一般に「何も指していないポインタ」として使われます。"" は文字列の先頭アドレスですが、その場所には'\0'の1バイトが入っています。" " だとその場所には空白文字(0x20)と'\0'の2バイトが続いて入っています。
・NULLは何も指していない
・"" は '\0' の入ったアドレスを指している
ので明らかに違います。
'\0' は文字列の終端をあらわす1バイトの文字で、整数値と見なしたときの値は0です。EOFは文字ではなくファイルの終わりを表す整数数値(-1)です。これまた全然違います。
No.3
- 回答日時:
""は別名null文字列とも言われていますが、nullという用語とは違います。
文字列の終端がどこなのかわかるように、C言語では1バイトの数値0を付加するのは知っていますか?
その0をC言語で表すのが\0です。
つまり、""はなにもない文字列ですが、実は終端\0が入った1バイトの文字列バッファを表します。
nullというのはそのバッファすらない状態といったらいいんでしょうか?
ポインタのアドレスがオール0の時をnullと呼んだりします。
EOFはまた違った話で、入出力ファイル終端を示すコードです。
VCですと、EOFは-1で定義されていますね。
No.2
- 回答日時:
>1)nullと""
nullは実体がないことを表していますが、""は長さは0ですが実体を持った文字列です。なので二つは全く別物です。
>""と空白" "は違うのか
" "(半角スペース)は0x20という文字コードで表されています。なので別物です。
>(2)\0とEOF
この2つも別物です。\0は文字列の終わりを示すデータですが、EOFはファイルが終わりに達したということを示しているだけであって実際にデータとしては存在しません。
簡単に言えば文字列の最後には\0というデータがつきますが、ファイルの終わりにはEOFというデータはついていません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- PHP 空文字 "" ですが 空文字の意味を教えてください。 3 2022/08/05 03:51
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Word(ワード) Wordの表中の文字を選択した時の白黒反転の違い 1 2023/04/25 12:13
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- PHP ここで言う空文字の意味とは? 1 2022/08/05 16:27
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
C言語 exitの使い方
C言語・C++・C#
-
コマンドプロンプトからのEOFの入力方法について
C言語・C++・C#
-
CTRL+Dでループを抜けるには
C言語・C++・C#
-
-
4
fgetsなどのときのstdinのバッファを消すには?
C言語・C++・C#
-
5
EOF
C言語・C++・C#
-
6
fopne で失敗する原因
C言語・C++・C#
-
7
atoi( ) の反対をやりたい
C言語・C++・C#
-
8
char str[256]の256の意味は?
C言語・C++・C#
-
9
LPSTR型の初期化について
C言語・C++・C#
-
10
fgets関数のEOFの扱い方について
C言語・C++・C#
-
11
変数が"(空文字)かどうか判別する方法
C言語・C++・C#
-
12
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
13
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
14
getcの改行判定
C言語・C++・C#
-
15
EXCELのVBAでEOFを誤認識
Visual Basic(VBA)
-
16
Winmerge ファイルの中身は同じなのに黄色くなる
その他(OS)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
%dなどの違い
-
nullと""、\\0とEOFの違いにつ...
-
プログラムによく出てくるst...
-
VBA-DLLの引数受け渡しについて
-
文字の桁を増やす方法。
-
シリアル通信で0x00を送信した...
-
関数から配列を返すには?
-
VBScriptで重複レコードを削除...
-
C言語 配列の長さの上限
-
c言語プログラミング 等差数列...
-
C言語のポインタに直接アドレス...
-
ポインタのミスでOS壊れるの...
-
アセンブラでのメモリの動的確...
-
構造体でchar name[]と*nameの...
-
C# DataTableの行をソートしてD...
-
まだまだCプログラマーの初心者...
-
Vbaで数式をポーランド記法に変...
-
文字列内の数字削除
-
プログラミングについて 配列を...
-
動的に作成した構造体配列の中...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
nullと""、\\0とEOFの違いにつ...
-
C++で入力した文字列から数字を...
-
%dなどの違い
-
C#でstringをポインタとして渡す
-
16進数を2文字ずつ配列に格納し...
-
TCL言語で文字列検索方法を教え...
-
プログラムによく出てくるst...
-
WSH(VBS)でJSONの文字列を読み...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
数字の入った配列をファイルへ...
-
構造体→文字列→構造体 をする方法
-
VB6.0でのバイナリデータの扱い...
-
char型配列の最大要素数
-
[C++]WCHARの1文字目しか表示で...
-
アルファベットをカウント、
-
VBA-DLLの引数受け渡しについて
-
c#で他のアプリの文字入力フォ...
-
C言語の勉強しています。すみま...
-
Shift_JIS(16進)を文字に変換す...
-
バイナリファイル中の日本語文...
おすすめ情報