7

C++ の enum 変数について質問があります。

type enmu {
   DAY1 = 1,
   DAY2,
   DAY3,
   DAY4
} DAYS;

void main() {
   DAYS days;
}

では、日のデフォルト値は何ですか?

4

4 に答える 4

8

値を読み取るのは、初期化されていない未定義の動作です。

と言うように

int x;

x初期化するまで値はありません。

于 2012-08-20T12:26:18.230 に答える
2

では、日のデフォルト値は何ですか?`

他の自動オブジェクトと同様に、daysオブジェクトの値は不確定です。

指定子を使用してオブジェクトを宣言した場合static:

static DAYS days;

次に、算術型の静的オブジェクトと同様に、初期値は になります0

于 2012-08-20T12:39:45.227 に答える
1

列挙型は整数とほとんど同じように動作します。つまり、明確に定義されたデフォルト値はありません。未定義の動作を呼び出さずに、初期化する前に変数の値を読み取ることはできません。

于 2012-08-20T12:27:14.913 に答える
0

ところで、言葉に加えて、前に言った:あなたは本当に静的列挙型変数のデフォルト値を持っているかもしれません。ただし、注意してください。これは 0 になります (他のすべての静的変数も同様です)。次のコードを検討してください。

#include <iostream>

enum _t_test {
                test_1 = 1,
                test_2 = 2,
                test_3 = 3,
             };

static enum _t_test t;

int main()
{
    using namespace std;
    cout << "Value of t is: " << t;
    return 0;

}

0 が出力されますが、列挙型の範囲は 1..3 です。ですから、それを知っておいてください。

于 2012-08-20T12:37:38.340 に答える