Cplusplus-cpp-variable-types
C ++変数タイプ
変数は、プログラムが操作できる名前付きストレージを提供します。 C ++の各変数には特定のタイプがあり、変数のメモリのサイズとレイアウトを決定します。そのメモリ内に保存できる値の範囲。変数に適用できる一連の操作。
変数の名前は、文字、数字、およびアンダースコア文字で構成できます。 文字またはアンダースコアで始まる必要があります。 C ++では大文字と小文字が区別されるため、大文字と小文字は区別されます-
前の章で説明したように、C ++には次の基本的な変数タイプがあります-
Sr.No | Type & Description |
---|---|
1 |
bool 値trueまたはfalseを格納します。 |
2 |
char 通常、単一のオクテット(1バイト)。 これは整数型です。 |
3 |
int マシンの整数の最も自然なサイズ。 |
4 |
float 単精度浮動小数点値。 |
5 |
double 倍精度の浮動小数点値。 |
6 |
void タイプがないことを表します。 |
7 |
wchar_t ワイド文字タイプ。 |
C ++では、他のさまざまなタイプの変数を定義することもできます。これについては、列挙、ポインター、配列、参照、データ構造、*クラス*などの後続の章で説明します。
次のセクションでは、さまざまなタイプの変数を定義、宣言、および使用する方法について説明します。
C ++の変数定義
変数定義は、変数用に作成するストレージの場所と量をコンパイラーに指示します。 変数の定義は、データ型を指定し、次のようにその型の1つ以上の変数のリストが含まれています-
type variable_list;
ここで、 type は、char、w_char、int、float、double、boolまたは任意のユーザー定義オブジェクトなどを含む有効なC ++データ型である必要があり、 variable_list はコンマで区切られた1つ以上の識別子名で構成されます。 いくつかの有効な宣言がここに示されています-
int i, j, k;
char c, ch;
float f, salary;
double d;
行 int i、j、k; は、変数i、jおよびkを宣言および定義します。これは、int型のi、j、kという名前の変数を作成するようコンパイラーに指示します。
変数は、宣言で初期化(初期値を割り当て)できます。 初期化子は、等号とそれに続く定数式で構成されます-
type variable_name = value;
いくつかの例は-
extern int d = 3, f = 5; //declaration of d and f.
int d = 3, f = 5; //definition and initializing d and f.
byte z = 22; //definition and initializes z.
char x = 'x'; //the variable x has the value 'x'.
初期化子なしの定義の場合:静的ストレージ期間を持つ変数は、暗黙的にNULLで初期化されます(すべてのバイトの値は0です)他のすべての変数の初期値は未定義です。
C ++での変数宣言
変数宣言は、指定された型と名前を持つ変数が1つ存在することをコンパイラに保証するため、コンパイラは、変数に関する完全な詳細を必要とせずに、さらにコンパイルを進めることができます。 変数宣言はコンパイル時にのみ意味を持ち、コンパイラはプログラムのリンク時に実際の変数定義を必要とします。
変数宣言は、複数のファイルを使用していて、プログラムのリンク時に使用できるファイルの1つで変数を定義するときに役立ちます。 extern キーワードを使用して、任意の場所で変数を宣言します。 ただし、C ++プログラムでは変数を複数回宣言できますが、ファイル、関数、またはコードブロックで定義できるのは1回だけです。
例
変数が上部で宣言されているが、メイン関数内で定義されている次の例を試してください-
#include <iostream>
using namespace std;
//Variable declaration:
extern int a, b;
extern int c;
extern float f;
int main () {
//Variable definition:
int a, b;
int c;
float f;
//actual initialization
a = 10;
b = 20;
c = a + b;
cout << c << endl ;
f = 70.0/3.0;
cout << f << endl ;
return 0;
}
上記のコードをコンパイルして実行すると、次の結果が生成されます-
30
23.3333
同じ概念が関数宣言にも適用され、宣言時に関数名を指定し、実際の定義は他のどこでも指定できます。 たとえば-
//function declaration
int func();
int main() {
//function call
int i = func();
}
//function definition
int func() {
return 0;
}
左辺値と右辺値
C ++には2種類の式があります-
- lvalue -メモリ位置を参照する式は「lvalue」式と呼ばれます。 左辺値は、割り当ての左辺または右辺として表示される場合があります。
- rvalue -rvalueという用語は、メモリ内のあるアドレスに格納されているデータ値を指します。 右辺値は、値を割り当てることができない式です。つまり、右辺に割り当てることができますが、割り当ての左側ではありません。
変数は左辺値であるため、割り当ての左側に表示される場合があります。 数値リテラルは右辺値であるため、割り当てられない可能性があり、左側に表示できません。 以下は有効なステートメントです-
int g = 20;
しかし、次は有効なステートメントではなく、コンパイル時エラーを生成します-
10 = 20;