2017-08-14 8 views
1

だから静的初期動的初期と呼ばれるものがあると明らかに彼らは物事が初期化されたときに初期化するが、の特定の方法を説明していません。静的および動的初期化は、非局所変数の初期化を指定するためにのみ使用できます...C++ローカル初期化?

ローカル変数はどうですか? の初期化が行われ、それは何と呼ばれますか? ローカル初期化と呼ばれるものが見つかりませんか?私は彼らが初期化が起こり、さらには静的および動的な初期化で使用することができます説明付加価値/ aggregate- /などの初期化以降に初期化されているときの名前を持つことが非常に便利ではないでしょう意味しますそれだけでもう少し私には混乱になり(私の知る限りでは)..

希望これはいくぶんあなたに感じる:)彼らが構築されている場合

+0

ローカル変数は、単一の「パス」に初期化することができます。グローバルの場合、それはより複雑です。 – Jarod42

+0

@dasblinkenlight私はすでにこの問題を尋ねる前にこれを確認しましたが、答えは見つけられませんでした。これは一般的に「ローカル」または「スタック」として知られている記憶装置が正式に「自動」 、私は実際にストレージについての質問ではなく、初期化です。また、私は実際にストレージと初期化を比較する理由を得ることはできません。つまり、ダイナミック初期化は動的ストレージ時間とは関係ありません。 –

答えて

0

ローカル変数は初期化されました。
に名前が必要ない場合は、とは何かが面白いです。

+0

"名前が必要ないときは、興味深いものだけです。"あなたはここでローカル変数について話しているだけですよね? –

+0

答えのどの部分(とあなたの質問)が私がそうでないと示唆していますか? – molbdnilo

+0

それは私が尋ねた理由でしたが、私はそれが「はい」だったと思います。 :) –

0

スコープが入力/再入力されると、ローカル変数が初期化されます。 ローカル変数の初期化には、C++に特定の用語はありません。

は、たとえば、次の点を考慮

for (int i = 0; i < 5; ++i) { 
    int n = 0; 
    printf("%d ", ++n); 
    /* prints 1 1 1 - the previous value is lost 
     every time n is initialized with 0 when scope is entered 
    */ 
} 
0

シンプルなロジックは、彼らだけが、実行時に呼び出されたときに開始します(静的または動的)すべてのローカル変数です。あなたは前方のローカル変数を宣言することはできませんよう

class Test 
{ 
public : 
    Test(string text) 
    { 
     cout << (text) << endl; 
    } 
}; 
void print() 
{ 
    Test t1("local"); 
    static Test t2 ("local static"); 
} 
    int main(int argc, char* argv[]) { 
    cout << "begin" << endl; 
    print(); 
    cout << "end" << endl; 
} 

anwers

begin 
local 
local static 
end 
関連する問題