関数が呼び出されると、メモリブロックがスタックにプッシュされ、関数がそのジョブを終了すると、先にプッシュされたメモリブロックがポップアウトされることがわかります。 すべての状況で正しいですか。関数に静的変数の宣言が含まれていても?はいの場合、静的変数はどのように値を保持しますか?それらはヒープ内のメモリ空間に割り当てられ、スタックされませんか?関数内で宣言された静的変数のメモリ領域はどれですか?
0
A
答えて
3
スタティックローカル変数はスタックに存在しません。グローバル変数と同じメモリに存在します。 .bssは、初期化されていないグローバル変数が存在するメモリです。 .dataは初期値で宣言された変数を保持できます。
2
static
キーワードで宣言されたオブジェクトには、静的な記憶期間があります。静的記憶期間を持つオブジェクトは、実行が定義されているブロックを終了するときに解放されません。静的オブジェクトの存続期間はプログラムの存続期間です。オブジェクトはプログラムの開始時に作成され、プログラムが終了すると破棄されます。
関連する問題
- 1. 関数内で宣言された静的変数の値は何ですか?
- 2. 関数内で宣言された静的変数にアクセスしています
- 3. Javaでは、静的メソッド自体の内部で宣言された変数は静的ですか?
- 4. ループ内で宣言された変数
- 5. C-静的宣言された関数のリンク
- 6. 関数の先頭で宣言された変数と後で宣言された変数の差
- 7. 関数内で宣言された関数のスコープ
- 8. 匿名関数内で宣言された関数へのアクセス?
- 9. Django - モデルクラスで宣言された変数はなぜ静的です
- 10. main関数で宣言された変数の範囲は?
- 11. クラス内の関数内で宣言された変数へのアクセス(PHP)
- 12. Javaの静的ブロック内で宣言された変数の範囲は何ですか?
- 13. Javaの非静的クラスで静的変数を宣言する
- 14. クラス内で静的関数を宣言するにはどうすればよいですか?
- 15. Javaでmainの中で宣言された変数は本質的に静的ですか?
- 16. 変数またはフィールド '関数'が宣言されたvoid
- 17. Java - 外部からループ内で宣言された変数
- 18. 宣言された変数とjs関数の宣言されていない変数
- 19. C++のmain()関数内で宣言されたクラス
- 20. 関数スコープ内の静的宣言と定義は変更されませんか?
- 21. Pythonの関数内で渡された変数からグローバル変数を宣言する
- 22. サーブレット内のinit()メソッドの外側で宣言された変数
- 23. 別の関数のある関数で定義され、宣言された変数にアクセスする方法は?
- 24. 関数内で宣言された相互C++クラス
- 25. 関数宣言と変数宣言が呼び出されました。
- 26. 別の関数内の関数で宣言された変数を使用できません。
- 27. Global.asaxで宣言され、webroleのonstartイベントで初期化された静的変数の値を失う
- 28. クラスの変数がメイン関数内で宣言されていないC++
- 29. jspページで静的変数(カウンタ)を宣言するには
- 30. Delphi 2009で静的変数を宣言する方法は?
私は、.bssと.dataが何であるか、そしてそれらがヒープとスタックにどのように関係しているかを知りません。 – bubble
[メモリ内の静的変数と大域変数](http://stackoverflow.com/questions/2421254/static-and-global-variable-in-memory)と他にもたくさんの重複があります。すべての "関連する"質問は、画面の右側に注意してください。 –
@Brian静的変数がヒープに割り当てられている場合、その質問に対する答えは具体的には言いません。また、誰かが信頼できるリンクを挙げることができるようにしたいと思います。 – bubble