2017-06-09 24 views
0

gccで以下のコードをコンパイルすると、1408.Howが得られます。構造体内の値を初期化できますか?構造体内の初期化値

#include<iostream> 
    using namespace std; 
    struct Test { 
    int i=1408; 
    }; 
    int main() 
    { 
    Test l;  
    int p=1508;  
    l.i==p;  
    cout<<l.i; 
    }  
+1

コードを書式設定してください。それは読みにくいです。 – Carcigenicate

答えて

0

l.i==p;は何もしません。 ==は、2つのものが等しいかどうかをテストします。それは割り当てではありません。

あなたはそれがオブジェクトを使用して、構造体本体とintialise値で構造体変数を宣言するのが最善です

l.i=p; 
+0

struct内の値を初期化できるか –

+0

@SoundaryaSivaramanできるはずです。あなたが結果を見ているのは、あなたが初期化した後で決して 'i'を変更しなかったからです。 – Carcigenicate

0

を意味している必要がありますが、あなたのコード識別子に構造識別子を使用して作成されたテストです。

初期化は、 の形式で行うことができます。テストt1 = {1408}。

+0

私が直接割り当てたときにエラーが発生しないのはなぜですか? –

+0

cまたはC++を使用していますか? C++ 11では正当であり、コンストラクタにこの値が使用されることを意味します(明示的に何かを行わない限り)。 –

+0

C++ヘッダを使用してください。 http://en.cppreference.com/w/cpp/language/data_membersを読んでください –

関連する問題