C++ の変数

この記事では、変数の命名規則、変数の型など、C++ の変数に関するすべてを学びます。

目次:

1.変数とは?
2.変数の宣言
--- * 初期化あり
--- * 初期化なし
---* 複数の変数の宣言
---* 初期化なし
---* 初期化あり
3.変数名のルール
4.変数と定数の違い
5.変数の種類(c++の変数のスコープに基づく)
---- * 静的 vs インスタンス変数
6.変数のデータ型
7.印刷変数
8.変数の算術演算
9.演習 - 電卓!

変数とは?

変数 名前が示すように、値がプログラム全体で固定されている定数ではなく、値が変化するエンティティです。

それらは、値を保持するコンテナーのようなものです。変数名は、メモリの場所に付けられた名前です。変数のメモリ内の値が変更されると、変数の値も変更されます。

使用する前にすべての変数を宣言する必要があります。

変数の宣言

変数は次の方法で宣言できます:

初期化なし

データ型 Variable_name;
例:

int var1;
char name;

初期化あり

Dtatype Variable_name=value;

例:

int num=1;
char word='C',

--セミコロンを忘れないでください!!

複数の変数の宣言

初期化なし

カンマで区切ることで、同じデータ型の複数の変数を宣言できます。

データ型 variable1,variable2,variable3;

例:

int A,B,C,D;

初期化あり

ここでは、個々の変数に値を割り当てる必要があります。

int A=10,B=20,C=40;

変数名のルール

<オール>
  • 変数には、アルファベット、数字、およびアンダースコアを含めることができます。

  • 変数名は、アルファベットとアンダースコアのみで始めることができます。数字で始めることはできません。

  • 変数名に空白は使用できません。

  • 変数名は、予約語またはキーワードであってはなりません。 char、float など

  • 有効な変数名

    int c;    
    int _mjb;    
    int a980;   
    

    無効な変数名

    int 100;    
    int my name;    
    int float;
    

    変数と定数の違い

    宣言後、変数の値はプログラムのどこでも変更できます。値を変数に代入するだけで済みます。その時点から、変数が使用されるたびに新しい値が取得されます。

    #include <iostream>
    using namespace std;
    int main()
    {
     int a =10;
     cout << a << endl;
     a=20;
      cout << a << endl;
      
      return 0;
    }
    

    出力

    10
    20
    

    一方、定数の場合、値を再割り当てしようとするとエラーが表示されます。

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        const int a=10;
        cout<< a << endl;
        a=20;
        cout<< a << endl;
    
        return 0;
    }
    

    出力

    main.cpp:17:6: error: assignment of read-only variable ‘a’
       17 |     a=20;
          |     ~^~~
    

    変数の種類 (C++ の変数のスコープに基づく)

    C++ には 3 種類の変数があります:

    • ローカル変数
    • インスタンス変数
    • 静的変数

    ローカル変数

    • これらは、関数 (メソッド)、ブロック、またはコンストラクター内で定義される変数です。
    • スコープ - ブロック内のみ
    • メソッドが呼び出されたときに作成され、メソッドを終了したときに破棄されます
    • 初期化は必須です

    インスタンス変数

    • メソッド、コンストラクタ、またはブロックの外側のクラスで宣言された非静的変数
    • クラスのオブジェクトが作成されたときに作成され、オブジェクトが破棄されたときに破棄されます。
    • インスタンス変数にアクセス指定子を使用できます。アクセス指定子を指定しない場合は、デフォルトのアクセス指定子が使用されます。
    • インスタンス変数の初期化は必須ではありません。
    • インスタンス変数は、オブジェクトを作成することによってのみアクセスできます。

    静的変数(クラス変数)

    • インスタンス変数と同様に宣言されます。違いは、静的変数は static キーワードを使用して宣言されることです メソッド コンストラクターまたはブロックの外側のクラス内。

    例:

    static int count=0;
    
    • インスタンス変数とは異なり、コピーは 1 つしか持てません 作成するオブジェクトの数に関係なく、クラスごとに静的変数を使用できます。
    • プログラムの実行開始時に作成され、実行終了時に自動的に破棄されます。
    • 初期化は必須ではありません。
    • デフォルト値は 0 です
    • オブジェクト (インスタンス変数など) を介して静的変数にアクセスすると、コンパイラは警告メッセージを表示し、プログラムを停止しません。コンパイラは、オブジェクト名をクラス名に自動的に置き換えます。
    • クラス名なしで静的変数にアクセスしようとすると、コンパイラは自動的にクラス名を追加します。

    静的 VS インスタンス変数

    static インスタンス
    クラスごとに静的変数のコピーを 1 つだけ持つ (作成するオブジェクトの数に関係なく) 各オブジェクトには独自のコピーがあります
    行われた変更は他のオブジェクトに反映されます (静的変数はクラスのすべてのオブジェクトに共通であるため)。 1 つのオブジェクトを使用してインスタンス変数に加えられた変更は、他のオブジェクトには反映されません (各オブジェクトにはインスタンス変数の独自のコピーがあるため)。
    クラス名を使用して直接アクセス オブジェクト参照を通じてアクセス

    変数のデータ型

    変数を宣言する際、そのデータ型を定義する必要があります。利用可能なさまざまなデータ型は次のとおりです:

    データ型 サイズ 説明
    int 4 バイト 小数点なしの整数を格納します
    フロート 4 バイト 1 つ以上の小数を含む小数を格納します。
    ダブル 8 バイト 1 つ以上の小数を含む小数を格納します
    ブール値 1 バイト 真または偽の値を保存します
    文字 1 バイト 単一の文字/文字/数字、または ASCII 値を保存します
    void 型がないことを表します。

    印刷変数

    cout を使用して変数を出力/表示します

    文字列と変数を結合するには、変数を <<<<

    で囲みます。

    例:

    int num=2;
    cout<< "I have"" << num << "apples in my hand" ;
    

    変数の算術演算

    float、int、double などの型の変数に対して算術演算を実行できます。

    1.追加

    同じデータ型の 2 つの変数を追加して、同じデータ型の変数に格納できます。

    #include <iostream>
    using namespace std;
    
    int main() {
    
      int first_number, second_number, sum;
        
      cout << "Enter two integers: ";
      cin >> first_number >> second_number;
      sum = first_number + second_number;
      cout << first_number << " + " <<  second_number << " = " << sum;     
    
      return 0;
    }
    

    出力

    Enter two integers: 4
    5
    4 + 5 = 9
    

    2.引き算

    同じデータ型の 2 つの変数を減算して、同じデータ型の変数に格納できます。

    #include <iostream>
    using namespace std;
    
    int main() {
    
      int first_number, second_number, diff;
        
      cout << "Enter two integers: ";
      cin >> first_number >> second_number;
      diff = first_number - second_number;
      cout << first_number << " - " <<  second_number << " = " << diff;     
    
      return 0;
    }
    

    出力

    Enter two integers: 5
    4
    5 - 4 = 1
    

    3.部門

    同じデータ型の 2 つの変数を分割できます。

    #include <iostream>
    using namespace std;
    
    int main() {
    
      int first_number, second_number, div;
        
      cout << "Enter two integers: ";
      cin >> first_number >> second_number;
      div = first_number / second_number;
      cout << first_number << " / " <<  second_number << " = " << div;     
    
      return 0;
    }
    

    出力

    Enter two integers: 6
    2
    6 / 2 = 3
    

    4.掛け算

    同じデータ型の 2 つの変数を逆乗算して、同じデータ型の変数に格納できます。

    #include <iostream>
    using namespace std;
    
    int main() {
    
      int first_number, second_number, mul;
        
      cout << "Enter two integers: ";
      cin >> first_number >> second_number;
      mul = first_number * second_number;
      cout << first_number << " * " <<  second_number << " = " << mul;     
    
      return 0;
    }
    

    出力

    Enter two integers: 5
    4
    5 * 4 = 20
    

    エクササイズ

    電卓

    変数の基本について学んだので、それを定義して使用する方法を学びました。小さな演習を行いましょう - 計算機を作りましょう.

    1) ユーザーから入力番号を受け取る
    2) 2 つの float に格納する 変数 (整数演算のみを実行する場合は、整数を使用することもできます)
    3)行う操作を文字入力とする
    4)別のキャラクターに保存する 変数
    5)入力された操作記号に応じて操作を行う条件を定義する

    同じコードを以下に示します:

    # include <iostream>
    using namespace std;
    
    int main() {
    
      char op;
      float num1, num2;
    
      cout << "Enter operator: +, -, *, /: ";
      cin >> op;
    
      cout << "Enter two operands: ";
      cin >> num1 >> num2;
    
      switch(op) {
    
        case '+':
          cout << num1 << " + " << num2 << " = " << num1 + num2;
          break;
    
        case '-':
          cout << num1 << " - " << num2 << " = " << num1 - num2;
          break;
    
        case '*':
          cout << num1 << " * " << num2 << " = " << num1 * num2;
          break;
    
        case '/':
          cout << num1 << " / " << num2 << " = " << num1 / num2;
          break;
    
        default:
          // If the operator is other than +, -, * or /, error message is shown
          cout << "Error! operator is not correct";
          break;
      }
    
      return 0;
    }
    

    出力:

    Enter operator: +, -, *, /: -    
    Enter two operands: 3.4  8.4
    3.4 - 8.4 = -5
    

    ええ、それだけです。変数について学習し、変数を使用して電卓の操作を実行するプログラムを実行しました。

    OpenGenus でのこの記事を読めば、C++ の変数について完全に理解しているはずです。