電子書籍の厳選無料作品が豊富!

単純な質問ですが、なかなか、google先生で引っかかりません。

char str[LEN] = "";

というような場合は、'\0'で初期化されているのですか?
それであるなら、char str[LEN] = {0};で初期化した方が
分かりやすくないですか?

A 回答 (4件)

C言語では文字列(String)型変数は言語の仕様上存在しません。


変数strを文字列(String)変数として扱いたいのか、数値変数として扱いたいのかによって記述の仕方を変えていると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2016/06/18 13:03

「char型の数値を入れる配列str」としては ={0} ; の方がわかりやすいですが


「文字列str」としては、 ="" ; の方がわかりやすいと思います。


="" とかみたいに初期値を設定しているもの「初期化子」と言います。
プログラム中で、数値や文字列といった定数を表現したもの「リテラル」と言い、文字列のリテラルは「文字列リテラル」と呼ばれます。
「配列 初期化子 文字列リテラル」
で原作すれば、解説もみつかるでしょう
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2016/06/18 13:02

言語的なことでいえば


char str[LEN] = "";

char str[LEN] = { '\0' };
と同じで, つまり
char str[LEN] = { 0 };
と同じです.

あとで「文字列」として使うために「文字列」で初期化してるとか, そんな理由じゃないかねぇ.
    • good
    • 0
この回答へのお礼

明確な回答ありがとうございます。
すっきりしました。

お礼日時:2016/06/18 13:02

>char str[LEN] = {0};で初期化した方が分かりやすくないですか?


いいえ、そうは思いません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やはり、やってることは{0}と""で全く同じだったのですね。

お礼日時:2016/06/18 13:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!