プロが教えるわが家の防犯対策術!

char* weeks[] = { "日","月","火","水","木","金","土" };


char weeks[] = { "日","月","火","水","木","金","土" };

下はエラーになります。

これは何が違うのでしょうか?

A 回答 (3件)

"日"


これの型がchar *だからです。

もう少しだけ具体的に言うと、"日"の値は、「日」という文字列が格納されている数バイトの領域の先頭の場所(アドレス)です。
    • good
    • 0

上はポインタ配列


下は単なる配列でcharとかintのような大きさの物しか扱えません、日本語はそれでは表示できないので2次元配列にでもしてあげましょう
char weeks[7][16] = {"日","月","火","水","木","金","土"};

上が大丈夫なのはメモリへ直接文字を入れてアドレスを貰いそれを操作する使い方だからです
下はまずメモリを確保してその中へ文字を入れていくのでcharのひとサイズに収まらないものは入りません

という感じでいかがでしょうか?
    • good
    • 0

char*

    • good
    • 0

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