C言語 | C言語入門 | 式と計算

この記事では、算術演算、代入、インクリメント、デクリメントについて説明する。

算術式

式はオペランドと演算子で構成される。

演算子 意味
+ 加算
- 減算
* 乗算
/ 除算
% 剰余
= 代入

コード1

#include <stdio.h>

int main() {
 int op1 = 0 , op2 = 0;
 printf("2つの数値を入力してください。 >");
 scanf("%d %d" , &op1 , &op2);
 printf("%d + %d = %d\n" , op1 , op2 , op1 + op2);
 return 0;
}

結果を再利用する場合は変数へ保存する。

op3 = op1 * op2;

演算子の優先順位は通常の算術規則と同じである。乗算と除算は加算と減算より先に行われる。順序を変えるには括弧を使う。

2 + 2 * 3       /* 8 */
(2 + 2) * 3     /* 12 */

複合代入

複合代入は演算と代入を組み合わせる。

演算子 同等の式
+= a = a + b
-= a = a - b
*= a = a * b
/= a = a / b
%= a = a % b

コード2

#include <stdio.h>

int main() {
 int width , height;
 printf("三角形の底辺と高さを入力してください。 >");
 scanf("%d %d" , &width , &height);
 width *= height / 2;
 printf("面積 = %d\n" , width);
 return 0;
}

インクリメントとデクリメント

++ は1を加え、-- は1を引く。

変数++;
変数--;

前置形式と後置形式は、大きな式の一部として使うと結果が異なる。後置形式は元の値を返してから変数を更新する。前置形式は先に変数を更新し、新しい値を返す。

コード3

#include <stdio.h>

int main() {
 int iVar1 = 0 , iVar2 = 0;
 printf("後置インクリメント = %d\n" , iVar1++);
 printf("前置インクリメント = %d\n" , ++iVar2);
 printf("iVar1 = %d, iVar2 = %d\n" , iVar1 , iVar2);
 return 0;
}