Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語の定数の種類とは?基本定数と二次定数の違いを解説

定数(constant)とは、プログラムの実行中に値を変更できない、固定された値のことを指します。

C言語では、数値・文字・文字列のいずれも定数として扱われ、任意のデータ型を持つことができます。なお、定数は「リテラル(literal)」とも呼ばれます。

定数の2つの種類

C言語における定数は、大きく以下の2種類に分類されます。

基本定数(Primary Constants)

整数(integer)、浮動小数点数(float)、文字(character)は「基本定数」と呼ばれます。最も基本的なデータ型そのものを表す定数です。

二次定数(Secondary Constants)

配列(array)、構造体(structure)、ポインタ(pointer)、列挙型(enum)などは「二次定数」と呼ばれます。基本となるデータ型を組み合わせて構成される定数です。

構文

定数を宣言するには、constキーワードを使用します。

const データ型 変数名;

基本定数の使用例

以下の例では、三角形の底辺と高さを定数として宣言し、面積を計算しています。

#include<stdio.h>
int main(){
    const int height = 20;
    const int base = 40;
    float area;
    area = 0.5 * height * base;
    printf("The area of triangle :%f", area);
    return 0;
}

実行結果

The area of triangle :400.000000

このようにconstで宣言された変数は、以降の処理で値を変更しようとするとコンパイルエラーになります。

二次定数の使用例

次の例では、ポインタを使って変数の値を間接的に変更する方法を示します。ポインタはアドレス値を格納するため、二次定数に分類されます。

#include<stdio.h>
void main(){
    int a;
    int *p;
    a = 10;
    p = &a;
    printf("a=%d\n", a);   /* a の値:10 */
    printf("p=%d\n", p);   /* p のアドレス値 */
    *p = 12;
    printf("a=%d\n", a);   /* a の値:12 */
    printf("p=%d\n", p);   /* p のアドレス値 */
}

実行結果

a=10
p=6422036
a=12
p=6422036

この例では、ポインタpが変数aのアドレスを保持しており、*p = 12;によって間接的にaの値が更新されていることがわかります。ポインタ自体のアドレス値(6422036)は変わっていません。

  1. C言語の基本データ型を徹底解説!int・char・floatの種類とサイズ一覧

    C言語の基本データ型とは? C言語のコンパイラがサポートする基本データ型は、大きく分けて次の4つです。 整数型(Integer) 文字型(Character) 浮動小数点型(Floating-point) 倍精度浮動小数点型(Double precision floating point) プログラムで扱う値の種類(整数・文字・実数など)に応じて適切な型を選ぶことは、正確で効率的なコードを書くための第一歩です。なお、各データ型のサイズや表現できる値の範囲は、使用するコンパイラや実行環境によって異なる場合がある点に注意してください。 整数型(Integral Data Type) 整数型は

  2. C言語の探索アルゴリズム解説|線形探索と二分探索の違いと実装例

    探索(サーチ)とは、複数の要素で構成されるリストの中から、目的の「キー」となる要素を見つけ出す処理のことです。 リストの中に指定した要素が存在すれば、その探索は「成功」とみなされます。 指定した要素がリストに存在しなければ、その探索は「失敗(不成功)」となります。 C言語で広く使われている代表的な探索手法は、主に次の2つです。 線形探索(Linear Search/リニアサーチ) 二分探索(Binary Search/バイナリサーチ) 線形探索(Linear Search)とは 線形探索は、リストの先頭から順に要素を1つずつ取り出し、キーと一致するかどうかを確認していく、最も基本的な探