Index |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
C++の基礎知識(5)【演算子篇】
| ●基本的な演算子 | ●特殊な演算子 | ●演算子の優先順位 |
sasaraan programming ![]() Exposition ●基本的な演算子
●特殊な演算子
【カンマ演算子】 複数行にわたるプログラム行を一行で表現します。
a = 1; b = 2; → a = 1, b = 2; 【sizeof】 sizeof 式, sizeof(式), sizeof(データ型) ... 式をバイト数で表現します。 int value = sizeof num; int value = sizeof(int); 【型変換(キャスト)】 (データ型) 式 ... 式の値を指定したデータ型に変換 例えば、、整数同士の計算では整数値を返しますので、答えに小数が欲しいときは型変換しなければ正しい計算結果を得ることはできません。 → int a = 25; int = 10; の時、 a/b = 2、(double)a/b = 2.5 → double a = 15.5; doubleb = 2.5; の時、 a/b = 6.2、(int)a/b = 6 → unsigned value = (unsigned) number; static_cast<データ型>(式) ... 静的変換(上記に同じ) dynamic_cast<データ型>(式) ... 動的変換(型変換の有効性を検証) const_cast<データ型>(式) ... 定数変換(const/volatile属性を除去) reinterpret_cast<データ型>(式) ... 再解釈変換(単純に型を置換え) → int value = static_cast<int>(chr); 【メンバ参照用演算子】 構造体や共用体、またはクラスのメンバにアクセスします。 struct book { int id; } book bk; bk.id = 1; // 実体のメンバには . を使用 book *pbk; pbk->id = 1; // ポインタのメンバには -> を使用 【newとdelete】 new : 動的にオブジェクトを作成 / delete : newで作成したオブジェクトを解放 newで作成したオブジェクトは deleteで解放する必要があります。 (通常の場合) int *value = new int; delete value; // ポインタ宣言してnew (配列の場合) char *s = new char[16]; : delete [] s; // []をつける 【スコープ解決演算子】 グローバル変数などを優先して適用させます。 int value = 1; // グローバル変数 void func() { int value = 0; // ローカル変数 int a = ::value; // グローバル変数の value = 1 を適用 int b = value; // ローカル変数の value = 0 を適用 } ●演算子の優先順位
式に複数の演算子が含まれる場合は、演算子の優先度が高いものから順に計算していきます。優先度が低いものを先に計算したい場合は括弧でくくるなどして対処する必要があります。下表は優先度別の演算子を表したものです。上に行くほど優先度が高く、下へ行くほど優先度は低くなります。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
www.sasaraan.net |
(c) morijoh |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||