C++における定数と変数の違いとは?初心者向けにわかりやすく解説
変数と定数は、数学やプログラミングにおいて頻繁に登場する2つの基本的な概念です。
簡単に説明すると、変数とは「変化する値」、あるいは「変化する可能性を持つ値」を指します。一方、定数とは「一度決めたら変更されない固定された値」のことです。
具体例で理解する定数と変数
例えば、「10個の半径(radii)が格納されたリストがあり、それぞれの円の面積を計算したい」というプログラムを考えてみましょう。
円の面積を求めるには、円周率(PI)の値が必要になります。このPIの値はプログラムの実行中に一切変わることがないため、定数として宣言するのが適切です。
一方、ループ処理の中で各円の面積を計算する際には、同じ変数を使い回すことができます。つまり、1つの円の面積を一時的に変数へ保存し、画面に出力した後、次の円の計算のためにその変数を再利用するのです。
サンプルコード
float area;
const float PI = 3.141;
for(int i = 0; i < 10; i++) {
area = PI * radii[i] * radii[i]; // 面積を計算
cout << area; // 面積を出力
}
コードのポイント
上記のコードでは、const float PI = 3.141; のように const キーワードを付けることで、PIを定数として宣言しています。const を付けた変数は、初期化後に値を変更しようとするとコンパイルエラーになるため、誤って書き換えてしまうバグを防ぐことができます。
対照的に、area 変数には const が付いていないため、ループのたびに新しい計算結果を何度でも代入できます。
まとめ:PIの値は、このプログラムが動作している間ずっと同じままです。このように「変わらない値は定数に」「変わる値は変数に」と使い分けることで、より安全で読みやすいコードを書くことができます。
-
C++のポインタ演算子*とは?間接参照演算子の基礎と使い方を解説
C++の2つのポインタ演算子C++には、ポインタを操作するための演算子として、アドレス演算子(&)と間接参照演算子(*)の2つが用意されています。ポインタとは、別の変数のアドレス(メモリ上の場所)を格納する変数のことです。つまり、他の変数のアドレスを保持している変数は、その変数を「指し示している(ポイントしている)」と表現されます。ポインタが指し示す対象は、オブジェクトや構造体、さらにはポインタ自身を含む、あらゆるデータ型が可能です。間接参照演算子(*)とは間接参照演算子(*)は、アドレス演算子(&)と対になる演算子です。単項演算子の一種で、オペランドに指定されたアドレスに格納
-
C++における#defineとconstキーワードの違いとは?
#defineとconstの基本的な違い#defineディレクティブはプリプロセッサディレクティブです。プリプロセッサは、コンパイラがソースコードを認識する前に、マクロをその定義内容で単純に置き換えます。イメージとしては、ソースコード全体に対して自動的に実行される「検索と置換」のようなものです。const変数の特徴一方、constによる変数宣言は、言語仕様上の実際の変数を宣言するものです。そのため、通常の変数と同じように扱うことができます。具体的には、以下のような操作が可能です。アドレスの取得(ポインタや参照への代入)関数への引数としての受け渡しキャストや型変換パフォーマンスとスコープの違いコ