C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。
Q&A
解決済
4回答
216閲覧
総合スコア11
0グッド
0クリップ
投稿2019/05/31 06:07
0
char _name[5][16] = {"Taro","Hanako","Sayaka","Miki","Hiroshi"};
上記のコードで[5]が配列の要素数を表しているのはわかるのですが、[16]は何を表しているのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答4件
ベストアンサー
イメージはこんな感じです。 文字列の最後を示すNULL文字(\0)が含まれるので、文字数+1のサイズが必要になります。 ||0|1|2|3|4|5|6|7|8|...|15| |---|---| |0|T|a|r|o| |1|H|a|n|a|k|o| |2|S|a|y|a|k|a| |3|M|i|k|i| |4|H|i|r|o|s|h|i|
投稿2019/05/31 06:36
総合スコア691
char _name[5][16]
これは二次元配列というもので、「要素の型がcharで、長さ16の配列が5つ並んでいる」という意味になります。 質問文のコードでは、_name[0]には"Taro"が、_name[1]には"Hanako"が…と_name[4]まで順番にcharの配列が入って行きます。
[16]というのは、初期化される文字列を格納するのに十分な長さを指定している訳です。 なので、この場合は「char _name[5][8]」でもOKです。
ただし、初期化時にもっと長い文字列も代入する場合は[16]を適切な値に変更する必要があります。
投稿2019/05/31 06:29
総合スコア298
char が 16 個並んでいて、更にそれが 5 個並んでいるという意味です。 文字列は文字 (char) の配列であり、 "taro" や "Hanako" といったものも配列なのです。 文字の配列の配列として表現したものが char _name[5][16] です。
char
"taro"
"Hanako"
投稿2019/05/31 06:26
総合スコア5768
1要素の確保するサイズを示してます
投稿2019/05/31 06:22
総合スコア88186
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
C言語 配列の宣言について
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。