こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

配列の要素の入り方

こんばんは。
現在C言語のプログラミングを勉強しています。
まだまだ初心者で基礎も十分には理解できていないので、とても基本なのかもしれませんが質問させていただきます…

例えば以下のような、配列に文字を入力するだけのプログラムを作ったとします。
---------------------------------
#include<stdio.h>
main(){
 int data[10];
 printf("input - ");
 fgets(data,10,stdin);
}
---------------------------------
これを実行し、
input - abc
のように「abc」と入力すると、配列にはどのように入るのですか?
 data[0]=a, data[1]=b, data[2]=c
となるまではわかるのですが、data[3]からdata[9]には何が入るのでしょうか。配列のクリアはしていない状態です。
改行とnullが入る、というように聞いたのですが、これらはどのような順(?)で配列に入っているのかがわかりません。

よろしくお願いします。

投稿日時 - 2009-01-13 20:45:57

QNo.4627889

すぐに回答ほしいです

質問者が選んだベストアンサー

int data[10]; は char data[10]; の間違いですよね。

data[0]='a'; data[1]='b'; data[2]='c'; data[3]='\n'; data[4]='\0'; です。
[5]以降は何が入っているかわかりません。

あと、'\0'は数値のゼロなので0と書いても良いです。ポインタであるNULLとは意味的に異なります。== で比較すれば等しいので混同している人もいますが。

投稿日時 - 2009-01-13 21:01:15

お礼

早い回答ありがとうございます。intはcharの間違いです。すみません;
'\0'は数値のゼロなのですね。知りませんでした。
わかりやすい回答、どうもありがとうございました。
おかげでずっともやもやしていたものがスッキリしました。

投稿日時 - 2009-01-13 21:14:26

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>おかげでずっともやもやしていたものがスッキリしました。

問題が解決したら、きちんと閉じましょう。

投稿日時 - 2009-01-13 22:01:18

お礼

すみません、よくわからず放っておいてしまいました。
ご指摘ありがとうございます。

投稿日時 - 2009-01-13 22:40:42

あなたにオススメの質問