目次
出力
ホームページ バックエンド開発 C++ C/C++ 変数を数字で始めることができないのはなぜですか?

C/C++ 変数を数字で始めることができないのはなぜですか?

Aug 25, 2023 pm 02:45 PM
C言語 命名規則 変数の命名規則

C/C++ 変数を数字で始めることができないのはなぜですか?

C/C では、変数名に文字、数字、アンダースコア (_) 文字を含めることができます。 C/C言語にはいくつかのキーワードがありますが、それ以外はすべて識別子とみなされます。識別子は、変数、定数、関数などの名前です。

コンパイラには以下の 7 つのステージがあるため、数字で始まる識別子は指定できません。

  • 字句解析
  • 構文分析
  • 意味分析
  • 中間コード生成
  • コードの最適化
  • コード生成
  • シンボル テーブル

上記のいずれも、数字で始まる変数をサポートしていません。これは、コンパイラが、数値に続くアルファベットに到達するまで、それが数値であるか識別子であるかを混乱させるためです。そのため、コンパイラはサポートされていない字句解析ステージに後戻りする必要があります。コンパイラーは、最初の文字を確認した後、トークンを識別子またはリテラルとして認識できる必要があります。

次は、C 言語の変数宣言を示す例です。

#include <stdio.h>
int main() {
   int 5s = 8;
   int _4a = 3;
   int b = 12;
   printf("The value of variable 5s : %d", 5s);
   printf("The value of variable _4a : %d", _4a);
   printf("\nThe value of variable b : %d", b);
   return 0;
}
ログイン後にコピー

変数が 5 で始まるため、上記のプログラムでは「整数定数の接尾辞 's' が無効です」というエラーが発生します。それを削除すると、プログラムは正常に動作します。

デモされた新しいプログラムのサンプルは次のとおりです。

ライブ デモンストレーション

#include <stdio.h>
int main() {
   int _4a = 3;
   int b = 12;
   printf("The value of variable _4a : %d", _4a);
   printf("\nThe value of variable b : %d", b);
   return 0;
}
ログイン後にコピー

出力

上記のプログラムの出力は次のとおりです。

えええええ

以上がC/C++ 変数を数字で始めることができないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C言語でのtypedef構造体の使い方 C言語でのtypedef構造体の使い方 May 09, 2024 am 10:15 AM

typedef struct は、構造体の使用を簡素化するために構造体型のエイリアスを作成するために C 言語で使用されます。構造体の別名を指定することで、新しいデータ型を既存の構造体に別名付けします。利点としては、可読性の向上、コードの再利用、型チェックなどが挙げられます。注: エイリアスを使用する前に構造体を定義する必要があります。エイリアスはプログラム内で一意であり、宣言されているスコープ内でのみ有効である必要があります。

C言語で実数は何を意味しますか C言語で実数は何を意味しますか May 09, 2024 pm 12:06 PM

real は、C 言語で倍精度浮動小数点数を表すために使用されるデータ型で、8 バイトを占有し、小数点以下 15 桁程度の精度を持ち、範囲は [-1.7976931348623157e+308, 1.7976931348623157e+308] です。

C言語でべき乗関数を実装する方法 C言語でべき乗関数を実装する方法 May 09, 2024 pm 11:33 PM

C 言語では、べき乗演算を実装する方法が 2 つあります。 pow() 関数を使用して、最初のパラメーターの 2 番目のパラメーターのべき乗を計算します。カスタム累乗関数を定義します。これは再帰的または反復的に実装できます。再帰的メソッドは、累乗が 0 になるまで 2 倍にし続けます。反復法では、ループを使用して基数を 1 つずつ乗算します。

C言語のscanfでエラーが発生した場合の対処方法 C言語のscanfでエラーが発生した場合の対処方法 May 09, 2024 am 11:39 AM

C 言語では、scanf 関数のエラーを処理する方法は次のとおりです。 1. フォーマット文字列を確認する、 3. 戻り値を確認する、 5. エラー処理関数を使用する、 6. を使用する。カスタムエラーに対処します。エラーを防ぐには、正しいデータ型を使用し、入力を慎重に検証し、戻り値を確認し、プログラム内の潜在的なエラーを処理します。

C言語でregは何を意味しますか C言語でregは何を意味しますか May 09, 2024 am 09:57 AM

reg は C 言語のレジスタのキーワードであり、レジスタを指すポインタ変数を宣言するために使用されます。構文: register data_type *var_name; ここで、data_type はレジスタに格納されているデータ型、var_name はポインター変数の名前です。レジスタ内の値はポインタを逆参照することでアクセスできますが、利用可能なレジスタはプラットフォームやコンパイラによって異なることに注意してください。

C言語でのElemTypeの使い方 C言語でのElemTypeの使い方 May 09, 2024 pm 12:03 PM

ElemType は、配列または構造体の要素の型を表す C 言語のデータ型です。これは、配列要素の型の宣言、構造体のメンバーの型の定義、および汎用関数とマクロで使用されます。 ElemType は予約語ではないため、別の名前に置き換えることができることに注意してください。

C言語におけるscanfsの役割 C言語におけるscanfsの役割 May 09, 2024 am 11:30 AM

scanfs 関数は、C 言語で使用され、標準入力からフォーマットされたデータを読み取り、読み取ったデータを指定された変数に格納します。 format パラメーターで指定された形式指定子 (%d、%f など) に従ってデータを読み取り、... パラメーターで指定された変数アドレスにデータを保存します。 scanfs 関数は、正常に読み取られたデータ項目の数を返します。読み取りが失敗した場合は -1 を返します。

C言語でインラインを使う方法 C言語でインラインを使う方法 May 09, 2024 am 10:12 AM

inline キーワードは、C 言語の関数をインライン関数として宣言するために使用されます。関数コードを呼び出し点に直接挿入することで、関数呼び出しのオーバーヘッドがなくなり、実行効率が向上します。ただし、インライン関数はコードが肥大化してデバッグが困難になる可能性があることに注意してください。そのため、インライン関数は、関数本体が小さく、頻繁に呼び出され、高価であるシナリオに適しています。

See all articles