式と演算子

演算子一覧

優先順位 記号 意味 結合規則
1 :: スコープ解決 なし
2 . クラスメンバアクセス
2 -> クラスメンバアクセス
2 [] 配列
2 () 関数呼び出し
2 ++ 後置インクリメント
2 -- 後置デクリメント
2 static_cast 静的キャスト
2 dynamic_cast 動的キャスト
2 const_cast 定値性キャスト
2 reinterpret_cast 強制キャスト
2 typeid 型識別
3 ++ 前置インクリメント
3 -- 前置デクリメント
3 ! 論理否定
3 ~ 補数
3 + 正符号
3 - 負符号
3 & アドレス
3 * 間接参照
3 delete オブジェクトの破棄
3 delete[] 配列の破棄
3 new オブジェクトの構築
3 new[] 配列の構築
3 sizeof 記憶量
3 () 型キャスト
4 .* メンバポインタ
4 ->* メンバポインタ
5 * 乗算
5 / 除算
5 % 剰余算
6 + 加算
6 - 減算
7 << ビット左シフト
7 >> ビット右シフト
8 < 左不等号(大きい)
8 <= 等価左不等号(以上)
8 > 右不等号(小さい)
8 >= 等価右不等号(以下)
9 = 等価
9 != 不等価
10 & ビット積
11 ^ ビット差
12 | ビット和
13 && 論理積
14 || 論理和
15 ?: 条件。[a ? b : c]のように使う
16 = 代入
16 *= 乗算代入
16 /= 除算代入
16 %= 剰余代入
16 += 加算代入
16 -= 減算代入
16 <<= 左シフト代入
16 >>= 右シフト代入
16 ^= ビット差代入
16 &= ビット積代入
16 |= ビット和代入
17 , コンマ演算子

インクリメント・デクリメント演算子

演算子が変数の前が後かで処理前、処理後に値を加算する
※加算する値は1度に「1」
  1. // sample03-01.cpp : メイン プロジェクト ファイルです。
  2.  
  3. #include "stdafx.h"
  4. #include <iostream>
  5. using namespace System;
  6.  
  7. int main(array<System::String ^> ^args)
  8. {
  9.  
  10. int a;
  11. int b;
  12.  
  13. // 先にインクリメントしてから処理を行う
  14. a = 10;
  15. std::cout << "++a = " << ++a << std::endl;
  16. std::cout << " a = " << a << std::endl;
  17.  
  18. // 先に処理してからインクリメントを行う
  19. a = 10;
  20. std::cout << "a++ = " << a++ << std::endl;
  21. std::cout << "a = " << a << std::endl;
  22.  
  23. // 先にデクリメントしてから処理を行う
  24. b = 20;
  25. std::cout << "--b = " << --b << std::endl;
  26. std::cout << " b = " << b << std::endl;
  27.  
  28. // 先に処理してからデクリメントを行う
  29. b = 20;
  30. std::cout << "b-- = " << b-- << std::endl;
  31. std::cout << "b = " << b << std::endl;
  32.  
  33.  
  34. return 0;
  35. }
  36.  
  37.  

sizeof演算子

式や型のサイズを調べる
  1. // sample03-02.cpp : メイン プロジェクト ファイルです。
  2.  
  3. #include "stdafx.h"
  4. #include <iostream>
  5.  
  6. using namespace System;
  7.  
  8. int main(array<System::String ^> ^args)
  9. {
  10. // 宣言
  11. char a1 = 'c';
  12. short a2 = 100;
  13. int a3 = 50;
  14.  
  15. // sizeof関数の戻り値設定用
  16. size_t sz;
  17.  
  18. // charサイズ
  19. sz = sizeof(a1);
  20. std::cout << "a1 = サイズ : " << sz << "バイト" << std::endl;
  21.  
  22. // shortサイズ
  23. sz = sizeof(a2);
  24. std::cout << "a2 = サイズ : " << sz << "バイト" << std::endl;
  25.  
  26. // intサイズ
  27. sz = sizeof(a3);
  28. std::cout << "a3 = サイズ : " << sz << "バイト" << std::endl;
  29. std::cout << std::endl;
  30.  
  31. // charサイズ
  32. sz = sizeof a1;
  33. std::cout << "a1 = サイズ : " << sz << "バイト" << std::endl;
  34.  
  35. // shortサイズ
  36. sz = sizeof a2;
  37. std::cout << "a2 = サイズ : " << sz << "バイト" << std::endl;
  38.  
  39. // intサイズ
  40. sz = sizeof a3;
  41. std::cout << "a3 = サイズ : " << sz << "バイト" << std::endl;
  42.  
  43. }
  44.  
  45.  

不等号演算子

値の大小のチェックを行い、条件が真の場合は「1」を偽の場合は「0」を返却する

等価演算子と非等価演算子

等価演算子は値の一致チェックを行い、条件が真の場合は「1」を偽の場合は「0」を返却する
非等価演算子は値の不一致チェックを行い、条件が真の場合は「1」を偽の場合は「0」を返却する

代入演算子

変数へ値を代入、または左辺の変数と右辺の変数の結果を左辺の変数へ格納する

キャスト演算子

変数のデータ型を別のデータ型にする

ビット演算子

変数のデータを2進数のビット形態にして計算する

シフト演算子

変数のデータを2進数のビット形態にして、値を2倍または2分の1へする
※1ビットシフトで2倍、または2分の1、2ビットの場合は4倍、4分の1とする

条件演算子

3項演算子といわれているもの





最終更新:2011年09月02日 17:34