
No.4ベストアンサー
- 回答日時:
ヌルポインタとヌル文字の違い。
処理系によっては'\0'がNULLで定義されていて、どちらも「ヌル」と表現するので紛らわしい。
文字列の終端はヌル文字
str[]には実際には 'm','o','j','i','r','e','t','u','\0' の9文字が格納される。
No.3
- 回答日時:
もしかして、ポインタの使い方がわかっていないのです
(str+8)はstrのアドレスに8キャラクタを加えた場所のアドレスで、*(str+8)はそのアドレスに格納されている内容です。
内容に関しては、ASCIIZ文字列で検索してみてください。
なお、文字列をどのように保持するかについては、処理系によって違う場合もあるし、今は多分無いと思いますが、GCOSやTOSBAC、ACOS6のBCDコードやUNIVACのFDコードで記述された場合、0x00は定義文字と重複する場合があるので、使えないで他の方法が使われる場合もあります。
余談ですが、EBCDICでCをコーディングする場合、中括弧{}が無いので、@(と@)で代用します。というように、こういう話は、処理系とコード系まで考えないと間違ってしまうこともあります。
No.2
- 回答日時:
#1さんも仰っている通り、文字列の終端は'\0'であって、NULLではありません。
メモリー上の値を見るとchar型の0が入っているようにしか見えないため、(void*)0であるNULLと同じ値のように見えてしまうかもしれませんが、両者は型もその概念も別のものです。
あと、NULL というのは (void*)0ですから、str+8==NULLなら、str==-8になってしまいます。
文字列の終端が'\0'な理由は、そう決めたからでしょうね。
有限な配列を示すには長さをどこかで教える方法か終端記号を決めておく方法かのどちらかしかとれませんが、C言語の文字列では後者の方法を使っていて、'\0'を終端記号として使っています。
No.1
- 回答日時:
>(str+8)がNULLではなく*(str+8)がNULLであることを判定します。
文字列の終端はNULLではなくて'\0'です。
*(str+8)、つまりstr[8]が'\0'であることをもって、
文字列の終端を判定します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# sprintf()の使い方について 1 2022/08/17 16:16
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- PHP 空文字 "" ですが 空文字の意味を教えてください。 3 2022/08/05 03:51
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
16進数を2文字ずつ配列に格納し...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
プログラムによく出てくるst...
-
C++で入力した文字列から数字を...
-
char型配列の最大要素数
-
%dなどの違い
-
プログラム問題・・・
-
VB6.0でのバイナリデータの扱い...
-
Shift_JIS(16進)を文字に変換す...
-
C言語のコンパイル時に表示され...
-
文字列操作
-
nullと""、\\0とEOFの違いにつ...
-
int型での文字列の扱いについて
-
VBA-DLLの引数受け渡しについて
-
TCL言語で文字列検索方法を教え...
-
C#でstringをポインタとして渡す
-
[C++]WCHARの1文字目しか表示で...
-
C言語の基礎
-
曜日を格納する配列の大きさ
-
ソースコードの間違い (C言語)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCL言語で文字列検索方法を教え...
-
C#でstringをポインタとして渡す
-
C++で入力した文字列から数字を...
-
nullと""、\\0とEOFの違いにつ...
-
c#で他のアプリの文字入力フォ...
-
WSH(VBS)でJSONの文字列を読み...
-
バイナリファイル中の日本語文...
-
シリアル通信で0x00を送信した...
-
%dなどの違い
-
16進数を2文字ずつ配列に格納し...
-
VB6.0でのバイナリデータの扱い...
-
C++で文字列の右端から特定の文...
-
構造体→文字列→構造体 をする方法
-
_tcscpy_s(wcscpy_s)の第二引数...
-
char型配列の最大要素数
-
VBA-DLLの引数受け渡しについて
-
binaryに対して正規表現を適用...
-
数字の入った配列をファイルへ...
-
C言語の課題で困っています;
-
プログラムによく出てくるst...
おすすめ情報