global static 変数?
ローカル変数?
スタティック変数?
自動変数?静的変数?
の単語の意味があやふやなので、改めて理解するためにメモ。
●調べる前
・ローカル変数・・・関数内のみで使える変数
・グローバル変数・・どこでも使える変数、自動変数?
・スタティック変数・・ん。なんだっけ。ローカル変数と同じことかな。静的変数?
①ローカル変数
ローカル変数(局所変数、英: local variable)とは、プログラムの一部分でしか利用できない変数のことである。一般的にグローバル変数(大域変数)と対比される。ローカル変数の定義はプログラミング言語によって異なるので、詳細な説明は言語別の項に譲る。
うん。自分の考えと合ってる。
グローバル変数も、合ってる。
スコープとかブロックはC言語やってたらなんとなくわかるから
言葉で改めて理解する必要はないかなと思いスルー。
②自動変数
自動変数=ローカル変数らしい
自動的に領域を確保して、関数の終了とともに自動的に解放するから
自動変数。
関数を実行しているときに確保されて、解放される・・?
で、スタック領域に確保する。←ここも詳しく知りたい。
③スタティック変数
最初に領域を確保してずっと同じ場所を使い続ける変数。
はあ、
で、ここで調べてたら、動的変数というものがでてきた。
あ、自動変数が静的変数の対になるものかとおもったけど、動的か。
③動的変数
必要になったときに領域を確保して、使い終わったら解放する変数。
参考
https://wa3.i-3-i.info/index.html
ローカル変数⇄グローバル変数
動的変数⇄静的変数
静的変数は、最初から最後まである変数
だから、ローカル変数・動的変数とは異なる。
ただ、グローバル変数はどこでも使える変数なので
必ず静的変数(ずっと使える)であるということか。
・ローカル変数は動的変数でもある。
・グローバル変数は静的変数でもある。
同じ◯◯変数という単語だけれど、
表している意味・領域が違う。
と、理解しました。(メモ)
間違ってたらおしえてください。
あ、
自動変数はスタック領域に確保され
静的変数はスタティック領域に確保されるらしい。
ずっと保存されるやつと、すぐ解放されてしまうとで保存される場所が違う。
すっきりしました。
http://www.ibe.kagoshima-u.ac.jp/edu/gengo0/p11.html