C++のローカル変数とは?定義・スコープ・サンプルコードでわかりやすく解説
C++におけるローカル変数とは
C++において、関数やブロック({ } で囲まれた範囲)の内部で宣言された変数を「ローカル変数(局所変数)」と呼びます。ローカル変数は、その宣言された関数またはコードブロックの内部にあるステートメントからのみアクセスでき、外部の他の関数から直接参照したり操作したりすることはできません。
つまり、ローカル変数の有効範囲(スコープ)は、それが宣言された関数やブロックの中に限定されます。この性質により、異なる関数間で同じ名前の変数を使っても互いに干渉しないため、プログラムの安全性と可読性が向上します。
ローカル変数の主な特徴
- 宣言された関数・ブロックの内部でのみ有効
- 関数やブロックの処理が終わると自動的に破棄される
- 初期化しない場合、不定の値(ガベージ値)を持つ可能性がある
サンプルコード
以下は、main関数内でローカル変数を宣言し、利用する基本的な例です。
#include <iostream>
using namespace std;
int main () {
int a, b; // ローカル変数a, bを宣言
int c; // ローカル変数cを宣言
a = 10;
b = 20;
c = a + b; // aとbの合計をcに代入
cout << c; // 結果を出力
return 0;
}実行結果
このプログラムを実行すると、次の出力が得られます。
30
この例では、変数 a、b、c はすべて main 関数内で宣言されているため、ローカル変数です。これらは main 関数の外からはアクセスできず、main 関数の処理が終了した時点でメモリから解放されます。
-
C++の記憶クラス(ストレージクラス)とは?auto・static・externなどの5種類を解説
C++プログラミングにおいて、記憶クラス(ストレージクラス)とは、変数や関数のスコープ(可視性)と寿命(ライフタイム)を定義するための指定子です。記憶クラス指定子は、修飾対象となる型の前に記述します。C++プログラムで使用できる記憶クラスには、以下の5種類があります。 auto register static extern mutable auto:自動記憶域期間 auto記憶クラス指定子は、自動記憶域を持つ変数を明示的に宣言するためのものです。ブロック内で宣言された変数のデフォルトはautoであり、自動記憶域を持つ変数xは、xが宣言されたブロックを抜けると破棄されます。 auto指定子は
-
C# 7.0のローカル関数とは?特徴と使い方を実例付きで解説
C# 7.0で導入されたローカル関数(Local Functions)は、別のメンバーの中に入れ子状に定義できるプライベートなメソッドです。最大の特徴は、そのローカル関数を定義したメンバー(親となるメソッドなど)からしか呼び出せないという点にあります。これにより、特定のメソッド内でのみ使用する補助的な処理を、クラスの外部や他のメンバーから隠蔽しながら、すっきりと記述できます。ローカル関数を宣言・呼び出しできる場所ローカル関数は、以下のようなメンバーの中で宣言し、呼び出すことができます。メソッド(特にイテレーターメソッドや非同期(async)メソッド)コンストラクタープロパティのアクセサーイベン