C プログラミング演算子
C プログラミング演算子
このチュートリアルでは、例を使用して C プログラミングのさまざまな演算子について学習します。
ビデオ:C の算術演算子
演算子は、値または変数を操作する記号です。例:+ 加算を行う演算子です。
C には、さまざまな操作を実行するための幅広い演算子があります。
C 算術演算子
算術演算子は、数値 (定数と変数) に対して加算、減算、乗算、除算などの数学演算を実行します。
演算子 | 演算子の意味 |
---|---|
+ | 加算または単項プラス |
- | 減算または単項マイナス |
* | 掛け算 |
/ | 部門 |
% | 除算後の余り (剰余除算) |
例 1:算術演算子
// Working of arithmetic operators
#include <stdio.h>
int main()
{
int a = 9,b = 4, c;
c = a+b;
printf("a+b = %d \n",c);
c = a-b;
printf("a-b = %d \n",c);
c = a*b;
printf("a*b = %d \n",c);
c = a/b;
printf("a/b = %d \n",c);
c = a%b;
printf("Remainder when a divided by b = %d \n",c);
return 0;
}
出力
a+b = 13 a-b = 5 a*b = 36 a/b = 2 Remainder when a divided by b=1
演算子 +
、 -
と *
ご想像のとおり、足し算、引き算、掛け算をそれぞれ計算します。
通常の計算では 9/4 = 2.25
.ただし、出力は 2
です
これは、両方の変数 a が b は整数です。したがって、出力も整数です。コンパイラは小数点以下の項を無視し、答え 2
を表示します 2.25
の代わりに .
モジュロ演算子 %
剰余を計算します。 a=9
のとき b=4
で割ります 、残りは 1
です . %
演算子は整数でのみ使用できます。
a = 5.0
とします。 、 b = 2.0
、 c = 5
と d = 2
.次に、C プログラミングでは、
// Either one of the operands is a floating-point number a/b = 2.5 a/d = 2.5 c/b = 2.5 // Both operands are integers c/d = 2
C のインクリメントおよびデクリメント演算子
C プログラミングでは、++
をインクリメントする 2 つの演算子があります --
を減らします オペランド (定数または変数) の値を 1 ずつ変更します。
インクリメント ++
--
を減らす一方で、値を 1 増やします 値を 1 減らします。これら 2 つの演算子は単項演算子です。つまり、1 つのオペランドのみを操作します。
例 2:インクリメントおよびデクリメント演算子
// Working of increment and decrement operators
#include <stdio.h>
int main()
{
int a = 10, b = 100;
float c = 10.5, d = 100.5;
printf("++a = %d \n", ++a);
printf("--b = %d \n", --b);
printf("++c = %f \n", ++c);
printf("--d = %f \n", --d);
return 0;
}
出力
++a = 11 --b = 99 ++c = 11.500000 --d = 99.500000
ここで、演算子 ++
と --
接頭辞として使用されます。これら 2 つの演算子は、a++
のような接尾辞としても使用できます。 と a--
.インクリメント演算子とデクリメント演算子が接尾辞として使用された場合の動作の詳細については、このページにアクセスしてください。
C 代入演算子
代入演算子は、変数に値を代入するために使用されます。最も一般的な代入演算子は =
です
演算子 | 例 | 同じ |
---|---|---|
= | a =b | a =b |
+= | a +=b | a =a+b |
-= | a -=b | a =a-b |
*= | a *=b | a =a*b |
/= | a /=b | a =a/b |
%= | a %=b | a =a%b |
例 3:代入演算子
// Working of assignment operators
#include <stdio.h>
int main()
{
int a = 5, c;
c = a; // c is 5
printf("c = %d\n", c);
c += a; // c is 10
printf("c = %d\n", c);
c -= a; // c is 5
printf("c = %d\n", c);
c *= a; // c is 25
printf("c = %d\n", c);
c /= a; // c is 5
printf("c = %d\n", c);
c %= a; // c = 0
printf("c = %d\n", c);
return 0;
}
出力
c = 5 c = 10 c = 5 c = 25 c = 5 c = 0
C 関係演算子
関係演算子は、2 つのオペランド間の関係をチェックします。関係が真の場合は 1 を返します。関係が false の場合、値 0 を返します。
関係演算子は、意思決定とループで使用されます。
演算子 | 演算子の意味 | 例 |
---|---|---|
== | 等しい | 5 == 3 0 に評価されます |
> | より大きい | 5 > 3 は 1 に評価されます |
< | 未満 | 5 < 3 0 に評価されます |
!= | 等しくない | 5 != 3 は 1 に評価されます |
>= | 以上 | 5 >= 3 は 1 に評価されます |
<= | 以下 | 5 <= 3 0 に評価されます |
例 4:関係演算子
// Working of relational operators
#include <stdio.h>
int main()
{
int a = 5, b = 5, c = 10;
printf("%d == %d is %d \n", a, b, a == b);
printf("%d == %d is %d \n", a, c, a == c);
printf("%d > %d is %d \n", a, b, a > b);
printf("%d > %d is %d \n", a, c, a > c);
printf("%d < %d is %d \n", a, b, a < b);
printf("%d < %d is %d \n", a, c, a < c);
printf("%d != %d is %d \n", a, b, a != b);
printf("%d != %d is %d \n", a, c, a != c);
printf("%d >= %d is %d \n", a, b, a >= b);
printf("%d >= %d is %d \n", a, c, a >= c);
printf("%d <= %d is %d \n", a, b, a <= b);
printf("%d <= %d is %d \n", a, c, a <= c);
return 0;
}
出力
5 == 5 is 1 5 == 10 is 0 5 > 5 is 0 5 > 10 is 0 5 < 5 is 0 5 < 10 is 1 5 != 5 is 0 5 != 10 is 1 5 >= 5 is 1 5 >= 10 is 0 5 <= 5 is 1 5 <= 10 is 1
C 論理演算子
論理演算子を含む式は、式の結果が真か偽かに応じて、0 または 1 を返します。論理演算子は、C プログラミングの意思決定によく使用されます。
演算子 | 意味 | 例 |
---|---|---|
&& | 論理積。すべてのオペランドが true の場合のみ true | c =5 かつ d =2 の場合、式 ((c==5) && (d>5)) 0 に等しい。 |
|| | 論理和。いずれかのオペランドが true の場合にのみ true | c =5 かつ d =2 の場合、式 ((c==5) || (d>5)) 1に等しい。 |
! | 論理否定。オペランドが 0 の場合のみ真 | c =5 の場合、式 !(c==5) 0 に等しい。 |
例 5:論理演算子
// Working of logical operators
#include <stdio.h>
int main()
{
int a = 5, b = 5, c = 10, result;
result = (a == b) && (c > b);
printf("(a == b) && (c > b) is %d \n", result);
result = (a == b) && (c < b);
printf("(a == b) && (c < b) is %d \n", result);
result = (a == b) || (c < b);
printf("(a == b) || (c < b) is %d \n", result);
result = (a != b) || (c < b);
printf("(a != b) || (c < b) is %d \n", result);
result = !(a != b);
printf("!(a != b) is %d \n", result);
result = !(a == b);
printf("!(a == b) is %d \n", result);
return 0;
}
出力
(a == b) && (c > b) is 1 (a == b) && (c < b) is 0 (a == b) || (c < b) is 1 (a != b) || (c < b) is 0 !(a != b) is 1 !(a == b) is 0
論理演算子プログラムの説明
(a == b) && (c > 5)
両方のオペランドが(a == b)
であるため、1 と評価されます と(c > b)
は 1 (真) です。(a == b) && (c < b)
オペランド(c < b)
のため、0 と評価されます 0 (偽) です。(a == b) || (c < b)
(a = b)
であるため、1 と評価されます は 1 (真) です。(a != b) || (c < b)
両方のオペランド(a != b)
のため、0 と評価されます と(c < b)
0 (false) です。!(a != b)
オペランド(a != b)
のため、1 と評価されます 0 (偽) です。したがって、!(a !=b) は 1 (真) です。!(a == b)
(a == b)
のため、0 と評価されます は 1 (真) です。したがって、!(a == b)
0 (偽) です。
C ビット演算子
計算中、加算、減算、乗算、除算などの数学演算はビットレベルに変換されるため、処理が高速になり、電力が節約されます。
ビット単位の演算子は、C プログラミングでビットレベルの操作を実行するために使用されます。
演算子 | 演算子の意味 |
---|---|
& | ビットごとの AND |
| | ビットごとの OR |
^ | ビットごとの排他的 OR |
~ | ビットごとの補数 |
<< | 左シフト |
>> | 右シフト |
詳細については、C のビット演算子を参照してください。
その他のオペレーター
コンマ演算子
コンマ演算子は、関連する式を一緒にリンクするために使用されます。例:
int a, c = 5, d;
sizeof 演算子
sizeof
データ (定数、変数、配列、構造体など) のサイズを返す単項演算子です。
例 6:sizeof 演算子
#include <stdio.h>
int main()
{
int a;
float b;
double c;
char d;
printf("Size of int=%lu bytes\n",sizeof(a));
printf("Size of float=%lu bytes\n",sizeof(b));
printf("Size of double=%lu bytes\n",sizeof(c));
printf("Size of char=%lu byte\n",sizeof(d));
return 0;
}
出力
Size of int = 4 bytes Size of float = 4 bytes Size of double = 8 bytes Size of char = 1 byte
三項演算子 ?:
などのその他の演算子 、参照演算子 &
、逆参照演算子 *
およびメンバー選択演算子 ->
後のチュートリアルで説明します。
C言語