Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> 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;
}

出力

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

The value of variable _4a : 3
The value of variable b : 12

  1. C++で少なくともk個の数値を持つ最大の合計サブ配列

    プログラムを完了するための手順を見てみましょう。 アレイを初期化します。 サイズnのmax_sum配列を初期化します。 すべてのインデックスの最大合計を見つけて、max_sum配列に格納します。 すべての要素の合計を計算し、それを可変合計に格納します。 i=kからnまで繰り返すループを作成します。 合計にa[i]--a[i--k]を追加します。 結果の最大値、合計で結果を更新します。 結果の最大値、合計+max_sum[i-k]で結果を更新します。 例 コードを見てみましょう。 #include<bits/stdc++.h> using namespace std; i

  2. 変数、そのタイプ、およびC++のスコープ

    C ++の各変数には特定のタイプがあり、変数のメモリのサイズとレイアウトを決定します。そのメモリ内に格納できる値の範囲。変数に適用できる一連の操作。表記-を使用して変数を宣言します type variableName; 型は、プリミティブ(int、bool、float、charなど)、列挙型、別の型へのポインター、またはデータ構造またはクラスのいずれかによって定義されたより複雑な型にすることができます。 可変スコープ スコープはプログラムの領域であり、大まかに言えば、変数を宣言できる場所は3つあります- ローカル変数と呼ばれる関数またはブロックの内部 仮パラメータと呼ばれる関数パラメータの