2017-01-25 21 views
-7

インクリメント演算子の動作を見つけようとしたとき、私はこの結果を得て2つの質問に終わりました。 ここにコードと出力があります。配列のこれらのデフォルト値が何であるか1:C++の配列の初期化されていない値は何ですか?

#include <iostream> 
using namespace std; 
int main(){ 

    int arr[4] ; 
    int x =0; 
    cout << arr[0] <<"_"<< arr[1]<<"_"<<arr[2]<<"_"<<arr[3]<<"**"<< x<< endl; 
    arr[x] = 10; 
    cout << arr[0] <<"_"<< arr[1]<<"_"<<arr[2]<<"_"<<arr[3]<<"**"<< x<< endl; 
    arr[x++] = 20; 
    cout << arr[0] <<"_"<< arr[1]<<"_"<<arr[2]<<"_"<<arr[3]<<"**"<< x<< endl; 
    arr[++x] = 30; 
    cout << arr[0] <<"_"<< arr[1]<<"_"<<arr[2]<<"_"<<arr[3]<<"**"<< x<< endl; 
    arr[x] = arr[x--] + arr[--x]; 
    cout << arr[0] <<"_"<< arr[1]<<"_"<<arr[2]<<"_"<<arr[3]<<"**"<< x<< endl; 

    return 0; 
} 

結果は

-1_-1_4254245_0**0 
10_-1_4254245_0**0 
20_-1_4254245_0**1 
20_-1_30_0**2 
50_-1_30_0**0 
  • Qでしたか?
  • Q:2配列の0番目の位置の値はどのように50ですか?
+2

プログラミングしている実際の言語でタグ付けを開始することができます。 – StoryTeller

+2

未定義の動作です。大文字小文字は閉じた – Danh

+0

@StoryTellerそのC++ – mks

答えて

0

ガベージ値。これらは、メモリー内にあった配列から配列に割り当てられていた以前のデータ、または単にガーベジから捨てられていた初期化済みの値のいずれかです。 C言語では、Javaと異なり、ゼロに初期化されるものがあれば、すべての値を初期化する必要があります。

関連する問題