私はどのようにか、なぜこの作品は本当にわからない:私はINT_MAX
がlimits.h
のでmin
とINT_MAX
の一部であることを知っているC++変数宣言
#include <stdio.h>
#include<stdlib.h>
#include <limits.h>
#include <iostream>
using namespace std;
int main() {
int min = INT_MAX, min_index;
cout << min <<"\n";
cout << INT_MAX << "\n";
cout << min_index <<"\n";
system("pause");
return 0;
}
ありmin
、INT_MAX
の実際の出力があり、かつmin_index
同じですが、min_indexには値が表示される理由はありません。
'min_index'が初期化されていない変数である。このような変数を、この問題を回避宣言し、初期化するために
ランダムなごみを含んでいます。その値にアクセスすると、定義されていない動作が発生します。 「働くと思われる」は、未定義の動作の可能性のある表現の1つです。 –
@HGI '<<" \ n "'の代わりに、ほとんどの場合 'endl'を使うべきです。 http://stackoverflow.com/a/213977/3141234 – Alexander
@アレクサンダー私は反対を言うだろう。ほとんどの場合、バッファをフラッシュして関連するコストを支払う必要はありません。 – juanchopanza