[SOT]

[著作権][インデックスへもどる][ホームWEBサイトへ戻る]

君とCしましょう。(未完成の暫定版)

演算子

C言語は電子計算機のプログラミング言語です。
プログラミング言語は、入力されたデータを演算という変換処理を通して出力に変換する制御を記述します。
演算する条件(式)の関係を記述するのに演算子を使います。
演算子は、算数でいうならば「+、×、÷、−、=」などといったものです。

C++の演算子
演算子機能記述概要
備考優先順位の高いほうから低いほうへ順番に並んでいる。しかし、コンパイラなどによっては微妙に優先順位が異なることがある。たとえばMicrosoft Visual C++ など。
::スコープ解決クラスネーム::メンバclassに属する関数の宣言などに使う。
::大域的::メンバ
.メンバ選択オブジェクト.メンバclassやstructのメンバを参照
->メンバ選択ポインタ->メンバclassやstructのメンバをポインタで参照
[]添字付けポインタ[式]配列の先頭ポインタからのオフセットを[]で括る
()関数の呼び出し関数名(引数リスト)関数の宣言や呼び出しで、括弧の中は引数の列挙
()値の構築型(式リスト)関数の宣言や呼び出しで、括弧の中は引数の列挙
sizeofオブジェクトのサイズsizeof オブジェクトオブジェクトの大きさを求める
sizeof型のサイズsizeof(型)intやcharなどの型の大きさを求める
++後置インクリメント変数++処理をしてから変数をインクリメントする
++前置インクリメント++変数変数をインクリメントしてから処理をする。
--後置デクリメント変数--処理をしてから変数をデクリメントする。
--前置デクリメント--変数変数をインクリメントしてから処理をする。
~補数~式補数を求める。
!否定!式式の否定論理
-単項のマイナス-式式が不の数
+単項のプラス+式s式が正の数
&アドレス&変数変数などオブジェクトのアドレス
*間接参照*式ポインタ変数が指し示す実体への参照
new作成new 型オブジェクトの確保
delete破壊delete ポインタnewで確保したオブジェクトの開放
delete[]配列の破壊delete[] ポインタ配列の開放
()キャスト(型)式型の異なる変数に変換
.*メンバ選択オブジェクト.*メンバへのポインタメンバになっているポインタ変数が指し示す実体への参照
->*メンバ選択ポインタ->*メンバへのポインタポインタが指し示すオブジェクトにあるポインタ変数が指し示す実体への参照
*乗算式 * 式掛け算よーん
/除算式 / 式割り算よーん
%法(剰余「じょうよ」)式 % 式余りを求める
+加算式 + 式足し算よーん
-減算式 - 式引き算よーん
<<左シフト式<< 式左にビットシフト。つまり算術的演算ならば倍
>>右シフト式 >> 式右にビットシフト。つまり算術的演算ならば半分
<より小さい式 < 式式の比較
<=以下式 <= 式式の比較
>より小さい式 > 式式の比較
>=以上式 >= 式式の比較
==等しい式 == 式式の比較
!=等しくない式 != 式式の比較
&ビット毎の論理積式 & 式
^ビット毎の排他的論理和式 ^ 式
|ビット毎の論理和式 | 式
&&論理積式 && 式
||論理和式 || 式
?:条件式(3項演算子)式1 ? 式2 ! 式3式1であるときは式2になり、そうではない時は式3になる。
この3項演算子の代わりにキーワードのifを用いても、同じようなシーケンスを記述できます
=単純な代入変数 = 式右辺の値を左辺の変数に複写します
*=乗算して代入変数 *= 式左辺の値を右辺で掛け算してから左辺に複写します
/=除算して代入変数 /= 式左辺の値を右辺で割り算してから左辺に複写します
%=剰余取って代入変数 %= 式左辺の値を右辺で割り算した余りを左辺にコピーします
+=加算して代入変数 += 式左辺の値を右辺で足し算してから左辺にコピーします
-=減算して代入変数 -= 式左辺の値を右辺で引き算してから左辺にコピーします
<<=左にシフトして代入変数 <<= 式
>>=右にシフトして代入変数 >>= 式
&=論理積を取って代入変数 &= 式
|=論理和を取って代入変数 |= 式
^=排他的論理和を取って代入変数 ^= 式
throw例外を送出throw 式
,コンマ(列演算)式 , 式enumや配列での値の列挙

計算をしてみよう

足し算、引き算、掛け算、割り算をして、結果を印字するプログラムを作ります。


#include <iostream.h>
#include <stdlib.h>
int main( int argc, char** argv)
{
   int ans0, ans1; // 答えをしまう変数を実数型で宣言
   int ans2, ans3; // 答えをしまう変数を実数型で宣言
   int ans4, ans5; // 答えをしまう変数を実数型で宣言

   int a, b;       // 変数を実数型で宣言

   a = (int)28;         // 変数 a に 28 を代入
   b = (int)18;         // 変数 b に 18 を代入

   ans0 = a + b;   // 足し算した結果を、変数 ans0 に代入
   ans1 = a - b;   // 引き算した結果を、変数 ans1 に代入
   ans2 = a * b;   // 掛け算した結果を、変数 ans2 に代入
   ans3 = a / b;   // 割り算した 商 を、変数 ans3 に代入
   ans4 = a % b;   // 割り算した余りを、変数 ans4 に代入

   cout << "TashiZan : " << ans0; << '\n'; // 結果を印字
   cout << "HikiZan  : " << ans1; << '\n'; // 結果を印字
   cout << "KakeZan  : " << ans1; << '\n'; // 結果を印字
   cout << "Syou     : " << ans1; << '\n'; // 結果を印字
   cout << "Amari    : " << ans1; << '\n'; // 結果を印字

   return EXIT_SUCCESS; // 終わり
}


著作権2000年 © 大槻昌弥

連絡先

ご意見ご要望は問い合わせフォームまでお願いします。

なお、メールウェアが「HTMLを含むマルチパートMIME」を理解できませんので、なるべくiso2022-jpのプレーンテキストで送信願います。
また、Webサイトの内容に関するお問い合わせは、整理の都合で出来るだけURIを明記するようにお願いします。

[EOT]

Valid XHTML 1.0 Transitional