変数とは、一時的に、或いは恒久的にデータを保存しておける箱のようなものです。
変数にはいくつか種類があり、入れる値のサイズや、入れて置けるデータの種類が決まっ
ています。
これを、変数の種類を型と呼びます。
以下に型と、値の範囲、及び入れておけるデータを示します。
尚、ここ説明する型は元から組み込まれている型で、プログラマの手により新しい型を
作成することも無論可能です。
変数にはいくつか種類があり、入れる値のサイズや、入れて置けるデータの種類が決まっ
ています。
これを、変数の種類を型と呼びます。
以下に型と、値の範囲、及び入れておけるデータを示します。
尚、ここ説明する型は元から組み込まれている型で、プログラマの手により新しい型を
作成することも無論可能です。
| 型名 | Bit幅 | 範囲 |
| byte | 符号無し8Bit | 0 ~ 255 |
| sbyte | 符号有り8Bit | -128 ~ 127 |
| ushort | 符号無し16Bit | 0 ~ 65,535 |
| short | 符号有り16Bit | -32,768 ~ 32,767 |
| uint | 符号無し32Bit | 0 ~ 4,294,967,295 |
| int | 符号有り32Bit | -2,147,483,648 ~ 2,147,483,647 |
| ulong | 符号無し64Bit | 0 ~ 18,446,744,073,709,551,615 |
| long | 符号有り64Bit | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
| float | 32Bit浮動小数点 | -3.402823e38 ~ 3.402823e38 |
| double | 64Bit浮動小数点 | -1.79769313486232e308 ~ 1.79769313486232e308 |
| decimal | 128Bit | -79228162514264337593543950335 ~ 79228162514264337593543950335 |
| char | 16 Bit Unicode 文字 | |
| string | 16 Bit Unicode 文字列 | |
| bool | True または False | |
| object | オブジェクト |
見て分かるとおり、byeからdecimal迄は数値を保存する為の変数です。
charとstringは文字専用です。
Cの経験者はアレ? と、思うかもしれません。
C#のcharは-128~127が入れられる型ではありません。
あくまでユニコード1キャラクタを格納する型です。
charとstringは文字専用です。
Cの経験者はアレ? と、思うかもしれません。
C#のcharは-128~127が入れられる型ではありません。
あくまでユニコード1キャラクタを格納する型です。
変数を使用するには、まず名前を定義します。
変数の型を指定した後ろに、変数の名前を記述し、最後にセミコロンをおきます。
これを変数の宣言と呼びます。
同じ型が複数ある場合、カンマで区切ることにより、複数の変数を宣言できます。
例
変数の型を指定した後ろに、変数の名前を記述し、最後にセミコロンをおきます。
これを変数の宣言と呼びます。
同じ型が複数ある場合、カンマで区切ることにより、複数の変数を宣言できます。
例
int Value; int Type,Counter;
こうすると、Valueには-2,147,483,648から2,147,483,647の範囲で値を保存できます。
Valueに値を入れるには、イコールを使います。
イコールを使って、変数に値を入れることを代入と呼びます。
変数にはリテラルのほかに、他の変数も入れることが出来ます。
勿論自身を自身に代入することも可能ですが、全く意味の無いコードですね。
Valueに値を入れるには、イコールを使います。
イコールを使って、変数に値を入れることを代入と呼びます。
変数にはリテラルのほかに、他の変数も入れることが出来ます。
勿論自身を自身に代入することも可能ですが、全く意味の無いコードですね。
例 数値
int Value1; int Value2; Value1 = 1000; //リテラルを代入 Value2 = Value1; //変数を代入
例 文字列
char Character; char CharacterJp; string Text; Character = 'a'; //一文字を代入 CharacterJp = 'あ'; //これも一文字 Text = "大往生"; //文字列を代入
char型は16Bitです。
なので、2Byte文字も入ります。C経験者は注意。
尚、変数を宣言するときに、イコールで初期化することが出来ます。
例
なので、2Byte文字も入ります。C経験者は注意。
尚、変数を宣言するときに、イコールで初期化することが出来ます。
例
int Value = 0; string Text = "";
初期化しておくと、未初期化変数の使用というミスを防ぐことが出来ます。
とはいえ、デフォルト設定では未初期化変数の使用はコンパイルエラーになるようです
が。
例
とはいえ、デフォルト設定では未初期化変数の使用はコンパイルエラーになるようです
が。
例
int a,b; a = b;
この場合、aもbも未初期化変数です。
aをbで初期化しようとしていますが、bも未初期化変数。
実際に何が入っているかは分かりません。
よって、このコードの動作は不明となってしまいます。
aはbですぐに初期化することが分かっているので、aを初期化する必要はありませんが、
bは必ず初期化しておく必要があります。
例
aをbで初期化しようとしていますが、bも未初期化変数。
実際に何が入っているかは分かりません。
よって、このコードの動作は不明となってしまいます。
aはbですぐに初期化することが分かっているので、aを初期化する必要はありませんが、
bは必ず初期化しておく必要があります。
例
int a,b = 0; a = b;
こうすれば、aも、bも0が代入されることになります。
まぁ……意味の無いコードですけど。
まぁ……意味の無いコードですけど。
ちなみに、どの型を使えば良いのか迷うかもしれません。
迷ったら、数値ならint、文字列ならstringをつかっておけば問題はありません。
その数値がカウンタで、1-10しか使わないからといって、切り詰める目的でbyteを使う必
要は全くありません。
但し、例えばシリアル通信を行う際、8Bit長のデータを送る為に変数を用意する、等とい
う場合はbyteをつかうべきでしょう。
迷ったら、数値ならint、文字列ならstringをつかっておけば問題はありません。
その数値がカウンタで、1-10しか使わないからといって、切り詰める目的でbyteを使う必
要は全くありません。
但し、例えばシリアル通信を行う際、8Bit長のデータを送る為に変数を用意する、等とい
う場合はbyteをつかうべきでしょう。