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

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

王林
王林転載
2023-08-25 14:45:091891ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。