変数と型#
プログラムにおいて、演算の対象となる値を変数と呼びます。
変数には、数値や文字列などのデータを格納することができます。これらのデータの種類を型と呼びます。
変数の宣言#
変数を宣言するには、型と変数名を指定します。
#include <iostream>
int main()
{
int data_a = 0;
std::cout << data_a << std::endl;
data_a = 1;
std::cout << data_a << std::endl;
return 0;
}
変数の宣言には、型と変数名を指定します。また、初期値を指定することもできます。
例えば、上記のコードでは data_a
という変数を宣言しています。型は int
で、初期値は 0
です。
その後、data_a
の値に 1
を代入しています。data_a
の値を出力すると、1
が出力されます。
型#
変数の型には、数値や文字列などがあります。
主に使う型はこちら - 符号付き整数 - int8_t - int16_t - int32_t - int64_t - int - size_t - 符号なし整数 - uint8_t - uint16_t - uint32_t - uint64_t - uint - 浮動小数点 - double - float - float32_t(ビット指定型はC++23からの機能なので普段は使用しない) - 文字・文字列 - std::string (stringをincludeする必要あり) - char
型の変換#
型の変換は、以下のように行います。
#include <iostream>
int main()
{
int data_a = 0;
double data_b = 1.0;
data_a = data_b;
std::cout << data_a << std::endl;
return 0;
}
data_a
は int
型で、data_b
は double
型です。data_a
に data_b
を代入すると、data_b
の型が int
に変換されます。
これでもいいですが、明示的に型を変換することもできます。
#include <iostream>
int main()
{
int data_a = 0;
double data_b = 1.0;
data_a = static_cast<double>(data_b);
std::cout << data_a << std::endl;
return 0;
}
data_b
に static_cast<型>
を追加することで、data_b
の型を int
に変換できます。
当然ながら、int
から double
に変換することもできます。
型推論#
下記のように型を指定せずにauto
キーワードを使い変数宣言できる。
#include <iostream>
int main()
{
auto data_a = 0;
std::cout << data_a << std::endl;
data_a = 1;
std::cout << data_a << std::endl;
return 0;
}
定数#
定数にすることで不用意な値の変更を防げることができます
// 定数
const auto hoge = 0;
hoge = 1; // コンパイルエラー
コンパイル時定数。値が決まっているものをこれに使用します。(etc. 円周率とか)。これはコンパイル時に展開および計算が行われます。
// コンパイル時定数
constexpr auto hoge = 0;