(C++) 静的変数または非静的変数はどこにありますか?私は記憶を意味します。C++静的非静的
静的変数または非静的変数はいつ初期化されますか?
私の考えを明確にするのに助けが必要です。 ありがとうございました!
とは?同じ?
(C++) 静的変数または非静的変数はどこにありますか?私は記憶を意味します。C++静的非静的
静的変数または非静的変数はいつ初期化されますか?
私の考えを明確にするのに助けが必要です。 ありがとうございました!
とは?同じ?
コンパイラ(またはリンカーまたはローダー)がそれらをメモリに格納する場所はどこでもかまいませんが、CおよびC++標準ではその詳細レベルが必須ではありません。それらは、の動作のみを要求します。
通常、静的メンバーは、プログラムの起動時(コンパイル時に、単に初期化された状態でロードされるように)、または最初の使用の直前に1回初期化されます。
非常によく慎重に言いました)。 –
静的でないメンバーは、オブジェクトのインスタンス化方法によって異なります。
class foo
{
int num ; // Non-Static member
// ....
};
foo obj ; // In this case `num` resides on stack. In fact, obj it self resides on stack
foo *temp = new foo; // In this case `num` resides on heap or in memory location acquired from the free store.
静的メンバーについてはわかりません。プログラムは
非静力学は、あなたがそれらを置く場所、これまで行って終了するまで
静力学は、コンパイラによって決定される傾向がある、グローバルと同じ場所に行くと、プログラムがロードされるときに作成され、存続します(スタックまたはヒープ上)
多分あなたはここで興味深いものがあります:http://stackoverflow.com/questions/5162580/what-happens-when-a-computer-program-runs – Muggen