C言語における変数のスコープの理解
cs50のYoutube動画「C言語における変数のスコープの理解」について要点と要約をまとめました
3つの要点
- 要点1
ローカル変数は関数内でのみアクセス可能であり、グローバル変数はプログラム内のどの関数からでもアクセス可能です。 - 要点2
グローバル変数はどの関数からでもアクセスできますが、その値が変更される可能性があるため、注意が必要です。 - 要点3
ローカル変数は関数呼び出し時に値渡しされるため、呼び出し元の関数の元の変数には影響を与えません(明示的に上書きしない限り)。
要約
ローカル変数とグローバル変数
C言語で関数を扱う際には、変数のスコープの概念が重要です。スコープは、どの関数から変数にアクセスできるかを決定します。主なスコープは2つあります:ローカルとグローバルです。ローカル変数は、作成された関数内でのみアクセスできますが、グローバル変数はプログラム内のどの関数からでもアクセスできます。
グローバル変数の注意点
グローバル変数はプログラム内のどの関数からでもアクセスできます。これらは関数の外部で宣言され、すべての関数で知られています。しかし、グローバル変数を扱う際には注意が必要です。なぜなら、任意の関数がその値を変更できるため、予期しない結果につながる可能性があるからです。
ローカル変数の引数渡し
C言語では、ローカル変数は関数呼び出し時に値渡しされます。つまり、呼び出された関数は変数のコピーを受け取るだけで、変数そのものではありません。そのため、1つの関数でローカル変数に対して行った変更は、呼び出し元の関数の元の変数には影響を与えません(明示的に上書きしない限り)。
変数名の重複によるスコープの問題
同じ変数名が複数の関数に現れると、変数のスコープの問題が複雑化することがあります。特に変数名が再利用される可能性がある共同プログラミング環境では、スコープの問題が発生する可能性があります。変数のスコープに注意し、混乱を避け、プログラムの正しい動作を確保することが重要です。
▼今回の動画
編集後記
▼ライターの学び
関数内での変数のスコープの重要性を学びました。特に変数名の重複によるスコープの問題には注意が必要です。
▼今日からやってみよう
今日から変数のスコープを意識してプログラミングを行いましょう。特に変数名の重複に気を付けることができます。