C言語のトークン、キーワード、識別子:種類と例

⚡ スマートサマリー

C言語におけるトークンは、コンパイラが読み込む最小単位であり、すべてのCプログラムは、キーワード、識別子、定数、文字列、演算子、およびC文字セットから抽出された特殊記号という6種類のトークンから構成されます。

  • 🔤 キャラクターセット: C言語のソースコードは、文字、数字、空白文字、特殊文字を組み合わせて、あらゆるトークンと記号を構成します。
  • 🧩 トークンの種類は6種類あります。 コンパイラはプログラムをキーワード、識別子、定数、文字列、演算子、特殊記号に分割します。
  • 🔑 キーワード: C言語では、int、for、returnなど、32個の小文字のキーワードが予約されており、それぞれに定義変更できない固定の意味が与えられています。
  • 🏷️ 識別子: 変数や関数のユーザー定義名は、文字またはアンダースコアで始まり、予約語は使用してはいけません。
  • 🔢 定数と文字列: 定数は固定値を保持し、文字列リテラルは二重引用符で囲まれた文字のグループであり、末尾にヌル文字が付きます。
  • 🤖 AI支援: GitHub Copilotや同様のアシスタントは、有効な識別子を提案したり、キーワードの衝突を指摘したり、C言語のコーディングを高速化したりします。

C トークン、識別子、キーワード

C言語における文字セットとは何ですか?

他のすべての言語と同様に、C言語にも独自の文字セットがあります。プログラムとは、実行されると出力を生成する一連の命令のことです。プログラムによって処理されるデータは、さまざまな文字と記号で構成されています。生成される出力もまた、文字と記号の組み合わせです。

C言語の文字セットは以下のように分類されます。

  • 手紙
  • Numbers
  • 特殊文字
  • ホワイトスペース(空白)

コンパイラは常に文字の使用を無視しますが、文字はデータのフォーマットに広く使用されます。以下は、C言語で使用される文字セットです。

1) 手紙

  • 大文字(AZ)
  • 小文字(az)

2) Numbers

  • 0から9までのすべての数字

3) 空白

  • 空白
  • 改行
  • キャリッジリターン
  • 水平タブ

4) 特殊文字

C言語の特殊文字を以下の表に示します。

特殊文字 詳細説明
、 (コンマ) { (左中括弧)
。 (期間) } (閉じ中括弧)
; (セミコロン) [ (左括弧)
:(コロン) ] (右括弧)
? (疑問符) ( (左括弧の開き)
' (アポストロフィ) ) (右閉じ括弧)
” (二重引用符) & (アンパサンド)
! (エクスクラメーション・マーク) ^ (キャレット)
|(縦棒) +(加算)
/ (スラッシュ) – (サブ)tracション)
\ (バックスラッシュ) * (乗算)
〜(チルダ) / (分割)
_ (アンダースコア) > (より大きい、または閉じ山括弧)
$ (ドル記号) < (山括弧より小さい、または開き山括弧)
% (パーセント記号) # (ハッシュ記号)

C言語におけるトークンとは何ですか?

トークンは、C プログラムにおける最小単位です。それは、C プログラムで遭遇するすべての単語と句読点です。コンパイラはプログラムを可能な限り最小の単位 (トークン) に分割し、コンパイルのさまざまな段階に進みます。AC トークンは、キーワード、 Operators、文字列、定数、特殊文字、および識別子。

C言語の6種類のトークン

次のセクションでは、これらのトークンタイプをそれぞれ見ていきます。まずは、すべてのC文を構成する2つのトークン、キーワードと識別子から始めます。

C言語のキーワード

C言語では、すべての単語はキーワードまたは識別子のいずれかになります。

キーワードは固定された意味を持ち、その意味を変更することはできません。キーワードはCプログラムの構成要素として機能します。C言語には全部で32個のキーワードがあります。キーワードはすべて小文字で表記されます。

以下の表は、C言語のキーワードを表しています。

のキーワード C Programming Language
オート int型 構造
破る ほかに 長い スイッチ
場合 列挙型 登録 typedef
チャリオット 外部 return 組合
定数 短い フロート 署名されていない
続ける 署名されました ボイド
デフォルト goto文 のサイズ
do if 静的な while

C言語における識別子

識別子とは、プログラム内の要素に割り当てられた名前のことです。たとえば、 変数 または関数。識別子 C言語 識別子は、C言語の標準文字セットで構成されるユーザー定義名です。名前が示すように、識別子はプログラム内の特定の要素を識別するために使用されます。各識別子には一意の名前が必要です。識別子には以下の規則に従う必要があります。

  • 最初の文字は常にアルファベットまたはアンダースコアである必要があります。
  • 文字、数字、アンダースコアのみを使用して形成する必要があります。
  • キーワードを識別子として使用することはできません。
  • 空白文字を含めないでください。
  • 名前は意味のあるものでなければなりません。

Cの定数

定数とは、プログラムの実行中に値が変わらないトークンのことです。C言語の定数を使うと、数値やテキストなどの固定データを格納し、意図しない変更から保護することができます。定数は、いくつかの一般的なカテゴリに分類されます。

  • 整数定数 — 10、-45、0などの整数。
  • 浮動小数点定数 — 3.14や-0.5のような小数点を含む実数。
  • 文字定数 — 'A' や '9' のように、シングルクォーテーションで囲まれた単一の文字。
  • 文字列定数 — 二重引用符で囲まれた文字の並び、例: “Guru99。 "

定数を定義するには const 修飾子または #define プリプロセッサディレクティブ、例えば const int DAYS = 7;固定値の宣言についてさらに詳しく知りたい場合は、C言語のガイドを参照してください。 変数、データ型、定数.

C の文字列

C言語における文字列は、ヌル文字(\0)で終端される1次元の文字配列です。C言語には専用の文字列データ型がないため、文字列リテラルは文字配列として格納され、ヌル文字はテキストの終端を示します。これにより、ライブラリ関数は別途長さカウンタを用意することなく文字列の終端を検出できます。

文字列を作成する一般的な方法は2つあります。

  • 文字配列として: char name[] = "Guru99";
  • リテラルへのポインタとして: char *name = "Guru99";

どちらの形式も、表示される 6 文字と終端のヌル文字を格納します。文字配列とテキスト処理についてさらに詳しく知りたい場合は、チュートリアルを参照してください。 C言語の文字列.

OperaC の tors

演算子とは、コンパイラに対し、1つまたは複数のオペランドに対して特定の数学的、関係的、または論理的な演算を実行するように指示するトークンである。 Opera演算子はCプログラムのアクションシンボルであり、演算子が操作する値はオペランドと呼ばれます。Cでは、演算子はいくつかのグループに分類されます。

  • 算術演算子 — +、-、*、/、%などの計算を実行します。
  • 関係演算子 — 2 つの値を比較します。例えば、==、!=、>、< などです。
  • 論理演算子 — &&、||、! などの条件を組み合わせます。
  • 代入演算子 — 値を変数に格納します。例えば、= や += などです。
  • ビット演算子 — &、|、^、~ などの個々のビットを操作します。

キーワードや識別子と演算子を組み合わせることで、プログラムはコンパイラが機械語に変換できる完全な命令を表現できるようになります。

よくあるご質問

はい。C言語は大文字と小文字を区別する言語なので、大文字と小文字は別物として扱われます。32個のキーワードはすべて小文字で記述する必要があり、Totalやtotalといった識別子は、同じプログラム内の2つの異なる要素を指します。

C標準では厳密な制限は設けられていないが、準拠するコンパイラは内部識別子の最初の63文字と外部識別子の最初の31文字のみを有効文字として扱えばよい。ping 短く分かりやすい名前は、持ち運び時の予期せぬトラブルを回避します。

いいえ。空白、タブ、改行、コメントは、コンパイラがトークンを区別するために使用する区切り文字であり、その後破棄されます。これらは6種類のトークンタイプには含まれませんが、文字列リテラル内の空白は意味を持つ場合があります。

最初の段階である字句解析では、コンパイラはソースコードを文字ごとにスキャンし、意味のある最小単位にグループ化します。そして、各トークンはキーワード、識別子、定数、文字列、演算子、または特殊記号として分類されます。

字句とは、ソースコード内の実際の文字の並びであり、例えば「int」や「count」といったテキストのことです。トークンとは、コンパイラがその字句に割り当てるカテゴリであり、例えば「キーワード」や「識別子」といったものです。すべてのトークンは、対応する字句から生成されます。

文字定数は、'A' のようにシングルクォーテーションで囲まれた 1 文字で、1 バイトを占めます。文字列リテラルは、'A' のようにダブルクォーテーションで囲まれた文字のシーケンスです。 Guru99で、常に隠しヌル文字で終わるため、1バイト余分に必要になります。

はい。AIコーディングアシスタントは、入力中に有効な識別子を提案したり、キーワードに基づいたステートメントを完成させたり、予約語と競合する名前を警告したりします。また、平易な言葉で書かれたコメントを正しいC言語の宣言に変換することもできますが、生成されたコードは必ず確認してください。

GitHubコパイロット コメントや変数名から、C言語の識別子、キーワード、文全体を自動補完します。意味のある名前を提案し、キーワードの衝突を警告し、定型文を作成しますが、すべての提案は慎重に確認する必要があります。