logo

C の定数

C の定数は、C プログラムで宣言されると値を変更できない読み取り専用変数です。定数のタイプは、整数定数、浮動ポインタ定数、文字列定数、または文字定数のいずれかです。 C言語では、 定数 キーワードは定数を定義するために使用されます。

この記事では、C プログラミングにおける定数、C での定数の定義方法、C での定数の種類、そのプロパティ、およびリテラルと定数の違いについて説明します。



Cの定数とは何ですか?

名前が示すように、C の定数は、プログラム内で宣言されると変更できない変数です。定数変数を定義した後は、その値を変更することはできません。

Cで定数を定義するにはどうすればよいですか?

C言語で定数を定義するには、 定数 キーワード。 const 型修飾子としても知られる const キーワードは、変数を定数として宣言するために変数宣言の先頭に配置されます。

定数を定義する構文

const   data_type var_name   =   value  ;>

C の定数の構文



C の定数の例

C


android.process.acore が停止し続ける





// C program to illustrate constant variable definition> #include> int> main()> {> >// defining integer constant using const keyword> >const> int> int_const = 25;> >// defining character constant using const keyword> >const> char> char_const =>'A'>;> >// defining float constant using const keyword> >const> float> float_const = 15.66;> >printf>(>'Printing value of Integer Constant: %d '>,> >int_const);> >printf>(>'Printing value of Character Constant: %c '>,> >char_const);> >printf>(>'Printing value of Float Constant: %f'>,> >float_const);> >return> 0;> }>

>

>

出力

Printing value of Integer Constant: 25 Printing value of Character Constant: A Printing value of Float Constant: 15.660000>

ここで注意すべき点の 1 つは、次のことです。 宣言時に定数変数を初期化する 。そうしないと、変数にガベージ値が格納され、変更できなくなります。次の図は、誤った変数定義と正しい変数定義の例を示しています。

Cで定数を宣言する正しい方法

C の定数の種類

定数の型は変数のデータ型と同じです。以下は定数の種類のリストです。

  • 整数定数
  • 文字定数
  • 浮動小数点定数
  • 倍精度浮動小数点定数
  • 配列定数
  • 構造定数

変数宣言の先頭に const キーワードを追加するだけです。

C の定数のプロパティ

const キーワードを使用して定義された C の定数変数の重要なプロパティは次のとおりです。

1. 宣言による初期化

C で定数変数を初期化できるのは、その宣言時にのみです。それ以外の場合は、ガベージ値が保存されます。

2. 不変性

c の定数変数は定義後は不変です。つまり、プログラム全体で 1 回だけ初期化できます。その後、その変数内に格納されている値を変更することはできません。

C


ピリオドキー



// C Program to demonstrate the behaviour of constant> // variable> #include> int> main()> {> >// declaring a constant variable> >const> int> var;> >// initializing constant variable var after declaration> >var = 20;> >printf>(>'Value of var: %d'>, var);> >return> 0;> }>

>

>

出力

In function 'main': 10:9: error: assignment of read-only variable 'var' 10 | var = 20;  | ^>

定数とリテラルの違い

定数とリテラルは同じものとして混同されることがよくあります。しかし、C 言語では、これらは異なるエンティティであり、異なるセマンティクスを持ちます。次の表に、C の定数とリテラルの違いを示します。

絶え間ない

リテラル

定数は、一度宣言すると変更できない変数です。 リテラルは、それ自体を定義する固定値です。
定数は、C の const キーワードを使用して定義されます。定数は、それ自体にリテラル値を格納します。 これら自体は、変数または定数に割り当てられる値です。
定数のアドレスを決定できます。 文字列リテラル以外のリテラルのアドレスを決定することはできません。
これらは左辺値です。 これらは右辺値です。
例: const int c = 20。 例: 24、15.5、「a」、Geeks など

#define プリプロセッサを使用した定数の定義

C で定数を定義することもできます。 #プリプロセッサを定義する 。 #define を使用して定義された定数は、定数のように動作するマクロです。これらの定数はコンパイラによって処理されず、プリプロセッサによって処理され、コンパイル前にその値に置き換えられます。

  #define     const_name     value>

定数マクロの例

C




// C Program to define a constant using #define> #include> #define pi 3.14> int> main()> {> >printf>(>'The value of pi: %.2f'>, pi);> >return> 0;> }>

>

>

出力

The value of pi: 3.14>

注記: 定数を定義するこの方法は、バグが発生し、コードの保守が困難になる可能性があるため、推奨されません。

C 定数に関する FAQ

Q1. C 定数を定義します。

答え:

C の定数は、C プログラムで宣言されると値を変更できない不変変数です。

Q2. const キーワードの用途は何ですか?

答え:

const キーワードは、C 言語で定数変数を宣言するために使用される修飾子です。

Q3.宣言後に定数変数を初期化できますか?

答え:

いいえ、定数変数は一度宣言すると初期化できません。

Q4. C で定数を宣言する正しい方法は何ですか?

答え:

C で定数を宣言する正しい方法は、宣言時に常に定数変数を初期化することです。

Q5. const 修飾子を使用して定義された定数と #define の違いは何ですか?

答え:

次の表は、const 修飾子を使用して定義された定数と C の #define の違いを示しています。

constを使用した定数 #define を使用した定数
これらは不変の変数です これらは、値によって置き換えられるマクロです。
これらはコンパイラによって処理されます。 これらはプリプロセッサによって処理されます。
構文: 定数 型名 = 値 ; 構文: #定義する 名前の値

Q6. Cで定数変数の値を変更する方法はありますか?

答え:

はい、ポインターによって作成された抜け穴を利用して、C で定数として宣言された変数の値を変更できます。以下の C プログラムは、その方法を示しています。

C




// C Program to change the value of constant variable> #include> int> main()> {> >// defining an integer constant> >const> int> var = 10;> >printf>(>'Initial Value of Constant: %d '>, var);> >// defining a pointer to that const variable> >int>* ptr = &var;> >// changing value> >*ptr = 500;> >printf>(>'Final Value of Constant: %d'>, var);> >return> 0;> }>

オーストラリアの都市
>

>

出力

Initial Value of Constant: 10 Final Value of Constant: 500>

関連記事 – C の Const 修飾子