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

王林
リリース: 2023-08-25 14:45:09
転載
1869 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!