global static 変数?

ローカル変数?

グローバル変数

スタティック変数?

自動変数?静的変数?

の単語の意味があやふやなので、改めて理解するためにメモ。

 

●調べる前

・ローカル変数・・・関数内のみで使える変数

グローバル変数・・どこでも使える変数、自動変数?

・スタティック変数・・ん。なんだっけ。ローカル変数と同じことかな。静的変数?

 

①ローカル変数

ローカル変数局所変数local variable)とは、プログラムの一部分でしか利用できない変数のことである。一般的にグローバル変数(大域変数)と対比される。ローカル変数の定義はプログラミング言語によって異なるので、詳細な説明は言語別の項に譲る。

ローカル変数 - Wikipedia

 

うん。自分の考えと合ってる。

グローバル変数も、合ってる。

スコープとかブロックはC言語やってたらなんとなくわかるから

言葉で改めて理解する必要はないかなと思いスルー。

 

②自動変数

自動変数=ローカル変数らしい

自動的に領域を確保して、関数の終了とともに自動的に解放するから

自動変数。

関数を実行しているときに確保されて、解放される・・?

で、スタック領域に確保する。←ここも詳しく知りたい。

 

③スタティック変数

最初に領域を確保してずっと同じ場所を使い続ける変数。

はあ、

で、ここで調べてたら、動的変数というものがでてきた。

あ、自動変数が静的変数の対になるものかとおもったけど、動的か。

 

③動的変数

必要になったときに領域を確保して、使い終わったら解放する変数。

 

参考

https://wa3.i-3-i.info/index.html

 

ローカル変数⇄グローバル変数

動的変数⇄静的変数

 

静的変数は、最初から最後まである変数

だから、ローカル変数・動的変数とは異なる。

ただ、グローバル変数はどこでも使える変数なので

必ず静的変数(ずっと使える)であるということか。

 

・ローカル変数は動的変数でもある。

グローバル変数は静的変数でもある。

 

同じ◯◯変数という単語だけれど、

表している意味・領域が違う。

 

と、理解しました。(メモ)

間違ってたらおしえてください。

 

あ、

自動変数はスタック領域に確保され

静的変数はスタティック領域に確保されるらしい。

ずっと保存されるやつと、すぐ解放されてしまうとで保存される場所が違う。

すっきりしました。

http://www.ibe.kagoshima-u.ac.jp/edu/gengo0/p11.html