授業中に作成したプログラムを片っ端から乗っけていきです。C++ を中心に掲載中。

4.1 算術演算子

加算 +
減算 -
乗算 *
除算 /
剰余算 %(整数型データにのみ限られる)

4.2 代入演算子

= 右辺の値を左辺の変数に代入する。
  • 多重代入も許される。複数の変数に共通の値を代入する。
	a=b=c=1+2;	const int c=123;
  • 中間代入
	c=(x=a+b)*(y=a-b)
ただし、次はいずれも代入できず、コンパイルエラーとなる。
	10=20;	(a=10)=20;

4.3 簡略化された代入演算

a=a+1; ⇒ a+=1;
同様に -=, *=, /=, %= などもある。

4.4 関係演算子

< より小さい
> より大きい
<= 以下
>= 以上
== 等しい
!= 等しくない
演算結果は、1(true)または0(false)
不等号から先に書くこと。

4.5 論理演算子

論理積 &&
論理和 ||
否定 !
例:0<x<5は文法的には正しいが、数学的意味はほとんどない。正しくは、0<x && x<5。

4.6 ビット演算子

論理積    &    a&b
論理和    |    a|b
排他的論理和 ^    a^b
左シフト   <<   a<<b 空いたビットには0が埋められる。例:c=a<<4;
右シフト   >>   a>>b 空いたビットには符号付きの場合、その符号、符号なしの場合は0が埋められる。
補数演算子  ~    ~a(各ビットを反転する。1の補数)
ビット演算子のオペランドは汎用数型に拡張され、演算結果は汎整数が拡張された後の型である。

4.7 インクリメント演算子とデクリメント演算子

b=a++; まず左辺に代入してからインクリメント b=a; a=a+1;
b=++a; まずインクリメントしてから左辺に代入 a=a+1; b=a;
(同位の演算子は左から順に評価される、と覚えればよい。)
b=a--; b=--a; も同様。
ただし、単独で使われる場合には、a++でも++aでも同じ。for文ではしばしば使われる。

4.8 コンマ演算子 ,

(式1, 式2, ・・・); 各式を評価(実行)するが、最後の式の評価結果が式全体の値となる。
例1:int i,j,k;
例2:i=0; j=1; k=2; は、i=0; j=1; k=2; と等価。
例3:i=3; j=4;
   j=(i++, j%3);
   cout << "i= " << i ", j= " << j "\n;
for文、if文、関数の仮引数の中で使用される。

4.9 3項演算子 ?:

(Expression)? value1 : value2
Expressionが真であれば、value1、偽であればvalue2を返す。条件演算子。
if/then/else文が書けるが、式(代入式)の中でも使える。
min = x<y ? x : y ;

4.10 型変数

型の違いによる桁落ちが予想される場合、コンパイラは警告メッセージを出す。
1)暗黙的型変換
(1)代入、初期化時
左辺の方と右辺の型が異なっている場合は、左辺の方に変換する。
int a; double x=3.1415; a=x; → aは3となる。
(2)式の中(混合演算)
データ型の異なった変数・定数の演算
データ型のランクは、データ長が大きいほど上。
char<short<int<long<float<double<long double
演算結果は、その式において最もランクの高いデータ型になる。
例 int a; float b; a+bはfloat
  10.0/4.0*2.0 各定数は浮動小数点として解釈
  10 / 4 * 2  各定数は整数として解釈
2)キャスト
変数の方を一時的に変更 (型)式
 int a=3; b=2; float f; f=a/b; → f=(float)a/b;
3)明示的型変換
変数の型を一時的に変更 型(式)
 int a=3; b=2; float f; f=a/b; → f=float(a/b);
4)関数の引数における暗黙的型変換
関数の多義化ではさサポートできない場合。
5)関数の戻り値での暗黙的型変換
1)の(2)と同じ

4.11 優先順位

↑優先順位が高い
() [] -> :: .
~ ++ -- - * & sizeof new/delete typeid 型キャスト
.* ->*
+ -
<< >>
< <= > >=
== !=
&
&&
?
= += -= /= %= > >= < <= &= ^= !=
,
↓優先順位低い

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Creative Commons

Creative Commons License
この作品は、クリエイティブ・コモンズ・ライセンスの下でライセンスされています。

メンバーのみ編集できます