私はコンパイラでこれを実行すると、私は0044を得て、誰かが私に得られる出力が正しいかどうか教えてくれますか?Cの次のコードセグメントの出力は?
このコード全体の意味は?
int main() {
int X[10]={0};
int N = 4;
int k ;
for(k = 0; k< N;k++){
X[k] = k*2;
printf("%d" , X[N/2]);
}
}
私はコンパイラでこれを実行すると、私は0044を得て、誰かが私に得られる出力が正しいかどうか教えてくれますか?Cの次のコードセグメントの出力は?
このコード全体の意味は?
int main() {
int X[10]={0};
int N = 4;
int k ;
for(k = 0; k< N;k++){
X[k] = k*2;
printf("%d" , X[N/2]);
}
}
はい回答は正しいです。 int X[10]={0};
の には、すべての配列要素がゼロに初期化されています。 printf("%d" , X[N/2]);
ここでは、(0
:k=2
まで)を印刷します。 k=2
の後、その値は4
に変更されます。したがって、0044
。
'ここであなたはX [2]'を印刷したいと思っています。答えは – Cherubim
@CherubimAnandですが、ここではX [N/2]正しい。 –
あなたは出力が何であるかを尋ねますが、出力は "0044"と言います。次に、出力が正しいかどうかを尋ねる - 「正しい」とはどういう意味ですか?間違っているか間違っているかは、プログラムが何をすべきかによって決まりますが、それが何であるかは言いません。ツアー(http://stackoverflow.com/tour)は、良い質問をし、ここで受け入れられる方法で質問する方法を見てみる価値があります。 –
-1これは非常に良い質問ではありません。基本的に、Cコンパイラが正しく動作しているかどうかを確認します。確かにそのコード部分は "0044"と入力されます(改行なしでプロンプトが始まるので、その直後にプロンプトが表示されます)。質問にはなぜそれが有用なものだと感じたのかという情報はありません。 – MAP