C の変数、データ型、定数

⚡ スマートサマリー

変数、データ型、定数は、すべてのCプログラムの基礎を形成するものであり、変数は変更可能な値を格納し、データ型はそのデータのサイズと範囲を定義し、定数は決して変更されない固定値を保持します。

  • 🔤 変数: 変数とは、値が変更可能な名前付き識別子であり、文字、数字、またはアンダースコアを使用して宣言されます。
  • 🧮 データ型: C言語の型には、プリミティブ型、派生型、ユーザー定義型があり、int、char、float、double、voidなどがあり、それぞれ固定のサイズと範囲を持ちます。
  • 🔒 定数: 定数は固定値を保持し、整数定数、文字定数、文字列定数、および決して変化しない実数定数が含まれます。
  • ⚙️ 宣言: constキーワードと#defineディレクティブはどちらも定数を作成しますが、前者はメモリを確保し、後者はテキストを置き換えます。
  • 🤖 AI支援: GitHub Copilotは、適切なデータ型を提案し、命名エラーを指摘し、C言語の宣言を高速化します。

C の変数、データ型、定数

変数とは何ですか?

変数は、値を格納するために使用される識別子です。 定数は実行時に変更することはできません。 変数はプログラムの実行中に変更され、内部に格納されている値を更新することがあります。

単一の変数をプログラム内の複数の場所で使用できます。 変数名は意味のあるものでなければなりません。 変数の目的を表す必要があります。

Example: Height, age, are the meaningful variables that represent the purpose it is being used for. Height variable can be used to store a height value. Age variable can be used to store the age of a person

変数は、プログラム内のどこかで使用する前に、最初に宣言する必要があります。 変数名は、文字、数字、アンダースコアを使用して形成されます。

変数を作成する際に従う必要があるルールは次のとおりです。

  • 変数名は文字、数字、アンダースコアのみで構成する必要があります。
  • 変数名は数字で始めることはできません。
  • 変数名に空白を含めることはできません。
  • 変数名にキーワードを含めることはできません。
  • 「C」は大文字と小文字を区別する言語であり、「age」という名前の変数と「AGE」が異なることを意味します。

以下は、「C」プログラムで有効な変数名の例です。

height or HEIGHT
_height
_height1
My_name

以下は、C プログラムにおける無効な変数名の例です。

1height
Hei$ght
My name

例えば、整数型の変数my_variableを宣言し、値48を代入してみましょう。

int my_variable;
my_variable = 48;

ちなみに、変数の宣言と初期化 (初期値の割り当て) は XNUMX つのステートメントで行うことができます。

int my_variable = 48;

データ型

「C」では、プログラマがアプリケーションの要件に応じて適切なデータ型を簡単に選択できるように、さまざまなデータ型が用意されています。次の 3 つのデータ型があります。

  • プリミティブデータ型
  • 派生データ型
  • ユーザー定義のデータ型

XNUMX つの主要な基本データ型があります。

  • 整数データの場合は int
  • 文字データの場合は char
  • 浮動小数点数の場合は float
  • 倍精度浮動小数点数の場合は double
  • ボイド

配列、関数、ポインタ、構造体は派生データ型です。C言語は、上記の基本データ型のより拡張されたバージョンを提供します。各データ型は、サイズと範囲が異なります。次の表は、各データ型のサイズと範囲を示しています。

データ・タイプ バイト単位のサイズ レンジ
char または signed char 1 -128~127
unsigned char 1 0〜255
int または signed int 2 -32768~32767
符号なし整数 2 0〜65535
short int または Unsigned short int 2 0〜255
符号付き short int 2 -128~127
長整数型または符号付き長整数型 4 -2147483648~2147483647
符号なし長整数 4 0〜4294967295
フロート 4 3.4E-38から3.4E + 38
8 1.7E-308から1.7E + 308
ロングダブル 10 3.4E-4932から1.1E + 4932

注:C言語にはブール型というデータ型はありません。

整数データ型

整数は単なる整数です。 整数データ型の範囲はマシンごとに異なります。 整数データ型の標準範囲は -32768 ~ 32767 です。

通常、整数は 2 バイトであり、メモリ内で合計 16 ビットを消費することになります。 単一の整数値は 2 バイトのメモリを必要とします。 整数データ型は、さらに short int、int、long int などの他のデータ型に分類されます。

各データ型は、整数データ型ファミリーに属していても、範囲が異なります。 整数ファミリーのデータ型ごとにサイズが変わることはありません。

short int は主に小さい数値を格納するために使用され、int は平均サイズの整数値を格納するために使用され、long int は大きな整数値を格納するために使用されます。

整数データ型を使用する際は、識別子の前に int を付ける必要があります。例:

int age;

ここで、age は整数値を格納するために使用できる整数データ型の変数です。

浮動小数点データ型

整数と同様に、「C」プログラムでも浮動小数点データ型を利用できます。 「float」キーワードは、浮動小数点データ型を表すために使用されます。 これは、数値に分数と小数部分があることを意味する浮動小数点値を保持できます。 浮動小数点値は、小数点を含む実数です。 整数データ型は小数部分を格納しないため、浮動小数点数を使用して値の小数部分を格納できます。

通常、float は最大 6 精度の値を保持できます。float では不十分な場合は、大きな浮動小数点値を保持できる他のデータ型を使用できます。double および long double データ型は、それぞれ最大 14 ビットと 80 ビットの精度の実数を格納するために使用されます。

浮動小数点数を使用する場合は、キーワード float/double/long double を識別子の前に置く必要があります。有効な例は次のとおりです。

float division;
double BankBalance;

文字データ型

文字データ型は、一重引用符で囲まれた単一の文字値を格納するために使用されます。

文字データ型は最大1バイトのメモリ領域を占有します。

例、

Char letter;

無効なデータ型

void データ型には値が含まれず、値も返されません。 これは主に「C」で関数を定義するために使用されます。

例、

void displayData()

変数の型宣言

int main() {
int x, y;
float salary = 13.48;
char letter = 'K';
x = 25;
y = 34;
int z = x+y;
printf("%d \n", z);
printf("%f \n", salary);
printf("%c \n", letter);
return 0;}

出力:

59
13.480000
K

同じデータ型の複数の変数をカンマで区切ることで、1行にまとめて宣言できます。また、printf の出力関数では、float (%f)、char (%c)、int (%d) といった書式指定子が使用されている点にも注意してください。

定数

定数は、プログラムの実行中に決して変化しない固定値です。定数には次のような種類があります。

整数定数

整数定数は、数字または数値で構成される値に他なりません。これらの値は、プログラムの実行中に変更されることはありません。整数定数には、8 進数、10 進数、16 進数があります。

0 進定数には、次のような 9 ~ XNUMX の数字が含まれます。

Example, 111, 1234

上記は有効な XNUMX 進定数です。

0 進定数には 7 ~ 0 の数字が含まれており、これらのタイプの定数の前には常に XNUMX が付きます。

Example, 012, 065

上記は有効な XNUMX 進定数です。

0 進定数には、9 ~ 0 の数字と A ~ F の文字が含まれます。 XNUMX 進定数の前には常に XNUMXX が付きます。

Example, 0X2, 0Xbcd

上記は有効な XNUMX 進定数です。

XNUMX 進数および XNUMX 進数の整数定数が「C」でのプログラミングで使用されることはほとんどありません。

文字定数

文字定数は、シングルクォーテーション(')で囲まれた単一の文字のみで構成されます。文字定数は、ASCII値で表すこともできます。

Example, 'A', '9'

上記は有効な文字定数の例です。

文字列定数

文字列定数には、二重引用符 (“”) で囲まれた文字のシーケンスが含まれます。

Example, "Hello", "Programming"

これらは有効な文字列定数の例です。

実定数

常に整数値を含む整数定数と同様です。 'C' は、小数点または小数値を含む実数定数も提供します。 実定数は、浮動小数点定数とも呼ばれます。 実定数には、小数点と小数値が含まれます。

Example, 202.15, 300.00

これらは ' の有効な実定数です。C'。

実定数は次のように書くこともできます。

Mantissa e Exponent

たとえば、古典的な円定数 PI のように変化しない値を宣言するには、この定数を宣言する XNUMX つの方法があります。

変数宣言で const キーワードを使用すると、ストレージメモリが確保されます。

#include <stdio.h>
int main() {
const double PI = 3.14;
printf("%f", PI);
//PI++; // This will generate an error as constants cannot be changed
return 0;}

メモリをストレージに使用しない#defineプリプロセッサディレクティブを使用し、そのステートメントの最後にセミコロン文字を入れないことで

#include <stdio.h>
#define PI 3.14
int main() {
printf("%f", PI);
return 0;}

よくあるご質問

変数は、実行中に値が変化する可能性のある、名前付きのメモリ位置です。定数は、一度定義されると決して変化しない固定値を保持します。

constキーワードは、コンパイラがチェックする型付きメモリベースの定数を作成します。#defineは、テキストを置換するプリプロセッサマクロであり、メモリは使用しません。

ローカル変数は関数内に存在し、関数の実行中のみ有効です。グローバル変数はC言語を通じてプログラム全体からアクセス可能です。 ストレージクラス.

符号付き型は負の値と正の値の両方を格納します。符号なし型は非負の値のみを格納し、同じバイト数で正の値の範囲を2倍にします。

従来のC言語にはブール型がなく、プログラマーは0と1のint型を使用していました。C99以降、 _Bool 型を通じて、bool、true、false を追加します。

書式指定子は、printfとscanfにデータの解釈方法を指示します。%dは整数、%fは浮動小数点数、%cは1文字を扱います。

はい。AIコーディングアシスタントは、データ型を提案したり、範囲を超える値について警告したり、キーワードと競合する名前を指摘したりします。出力結果は必ず確認してください。

GitHubコパイロット コメントや近くのコードから変数や定数の宣言を自動補完します。名前やデータ型を提案し、確認用のconstや#define行を下書きします。