この詳細なガイドでは、C プログラミングの演算子とその型について説明します。
C プログラミングにおける演算子とその型
演算子は、特定の数学的タスクを実行するために使用される記号です。これらはデータと変数を操作するために使用されます。 C プログラミングにおけるさまざまな種類の演算子を次に示します。
1: 算術演算子
これらは、加算、減算、乗算などの基本的な数学関数を実行するために使用される演算子です。これらの演算子は、C プログラミングのほぼすべての組み込みデータ型で使用できます。 C プログラミングで使用される算術演算子は次のとおりです。
オペレーター | 機能 |
+ | 2 つのオペランドを追加します |
– | 2 つのオペランドの減算 |
* | 2 つのオペランドを乗算する |
/ | 2 つのオペランドの除算 |
% | 剰余演算子は除算の余りを与えます。 |
例
以下の例では、変数 X と変数 Y に対して上記の算術演算を実行しました。変数 X は値 20 を保持し、変数 Y は値 5 を保持します。
#include
整数 主要 ( )
{
整数 バツ = 二十 ;
整数 と = 5 ;
整数 結果 ;
結果 = バツ + と ;
プリントフ ( 'X と Y の加算は: %d \n 」 、 結果 ) ;
結果 = バツ - と ;
プリントフ ( 'X と Y の減算は: %d \n 」 、 結果 ) ;
結果 = バツ * と ;
プリントフ ( 「X と Y の乗算は次のとおりです: %d \n 」 、 結果 ) ;
結果 = バツ / と ;
プリントフ ( 「X と Y の除算は: %d \n 」 、 結果 ) ;
結果 = バツ % と ;
プリントフ ( 'X と Y の係数除算は: %d \n 」 、 結果 ) ;
戻る 0 ;
}
2: 単項演算子
C 言語でのみサポートされる 2 つの固有の単項演算子、インクリメント ++ 演算子とデクリメント — 演算子があります。インクリメント演算子はオペランドに 1 を加算し、デクリメント演算子はオペランドから 1 を減算します。
インクリメント演算子は次のように記述されます。
++ または ++
デクリメント演算子は次のとおりです。
-- または --インクリメント演算子とデクリメント演算子をプレフィックスとして使用すると、最初に変数値が加算または減算され、次に結果が左側の変数に割り当てられます。演算子が前に追加される場合、最初に元の値が返され、次にオペランドが 1 で加算または減算されます。
例
以下では、2 つの変数 a と b に値を代入し、それらにインクリメント演算子とデクリメント演算子を適用しています。
#include整数 主要 ( )
{
整数 ある = 15 、 b = 10 ;
プリントフ ( '++a = %d \n 」 、 ++ ある ) ;
プリントフ ( 「a++ = %d \n 」 、 ある ++ ) ;
戻る 0 ;
}
3: 代入演算子
アン 代入演算子 (=) プログラム内の変数に値を代入するために使用されます。以下に挙げる代入演算子を示します。
オペレーター | 関数 |
= | オペランドに値を代入する |
+= | 右側にあるオペランドの値を左側のオペランドに加算します。 |
-= | 左オペランドから右オペランドの値を減算します。 |
*= | 右オペランドの値を左オペランドに乗算します。 |
/= | 右オペランドの値を左オペランドで除算します。 |
%= | 2 つの値の法を取得し、その値を左のオペランドに代入します。 |
例
以下の例では、2 つのオペランド X と Y に対する代入演算子の動作を示しました。
#include整数 主要 ( )
{
整数 バツ = 10 ;
整数 結果 ;
結果 = バツ ;
プリントフ ( 「結果の値 = %d \n 」 、 結果 ) ;
結果 += バツ ;
プリントフ ( 「結果の値 = %d \n 」 、 結果 ) ;
結果 -= バツ ;
プリントフ ( 「結果の値 = %d \n 」 、 結果 ) ;
結果 *= バツ ;
プリントフ ( 「結果の値 = %d \n 」 、 結果 ) ;
結果 /= バツ ;
プリントフ ( 「結果の値 = %d \n 」 、 結果 ) ;
戻る 0 ;
}
4: 関係演算子
関係演算子は、C プログラミングで 2 つの変数間の関係を確認するために使用されます。アイテムの価格や 2 人の年齢を比較するのに使用できます。 C プログラミングで使用される関係演算子は次のとおりです。
オペレーター | 機能 |
== | に等しい |
> | より大きい |
< | 未満 |
>= | 以上 |
<= | 以下に等しい |
!= | 等しくありません |
例
以下の例は、C プログラミングにおける関係演算子の動作を示しています。
#include整数 主要 ( )
{
整数 ある = 9 ;
整数 b = 10 ;
プリントフ ( 「%d == %d は %d です \n 」 、 ある 、 b 、 ある == b ) ;
プリントフ ( 「%d > %d は %d \n 」 、 ある 、 b 、 ある > b ) ;
プリントフ ( 「%d < %d は %d \n 」 、 ある 、 b 、 ある < b ) ;
プリントフ ( 「%d != %d は %d です \n 」 、 ある 、 b 、 ある != b ) ;
プリントフ ( 「%d >= %d は %d \n 」 、 ある 、 b 、 ある >= b ) ;
プリントフ ( 「%d <= %d は %d \n 」 、 ある 、 b 、 ある <= b ) ;
戻る 0 ;
}
5: 論理演算子
C 言語でサポートされている論理演算子は 4 つあります。
オペレーター | 関数 |
論理積 (&&) | すべての条件が満たされる場合にのみ true |
論理和 (||) | 条件が 1 つだけ満たされる場合、結果は true になります |
論理否定(!) | オペランドが 0 の場合、結果は true になります |
ビット単位の NOT (~)。 | オペランドのすべてのビットを反転します |
例
以下のコード例は、C の論理演算子の動作を説明しています。
#include整数 主要 ( )
{
整数 バツ = 10 、 と = 4 、 と = 10 、 結果 ;
結果 = ( バツ == と ) && ( と > と ) ;
プリントフ ( '(X == Y) && (Z > Y) は %d \n 」 、 結果 ) ;
結果 = ( バツ == と ) && ( と < と ) ;
プリントフ ( '(X == Y) && (Z < Y) は %d \n 」 、 結果 ) ;
結果 = ( バツ == と ) || ( と < と ) ;
プリントフ ( '(X == Y) || (Z < Y) は %d \n 」 、 結果 ) ;
結果 = ( バツ != と ) || ( と < と ) ;
プリントフ ( '(X != Y) || (Z < Y) は %d です \n 」 、 結果 ) ;
結果 = ! ( バツ != と ) ;
プリントフ ( 「!(X != Y) は %d です \n 」 、 結果 ) ;
結果 = ! ( バツ == と ) ;
プリントフ ( '!(X == Y) は %d \n 」 、 結果 ) ;
結果 = ! ( バツ > と ) ;
プリントフ ( '!(X > Y) は %d \n 」 、 結果 ) ;
戻る 0 ;
}
6: 条件演算子
C の条件演算子は、 三項演算子 これは、条件、ステートメント 1、およびステートメント 2 の 3 つのオペランドを取るためです。条件を評価し、true または false の指定された条件の結果に応じて、ステートメント 1 またはステートメント 2 を返します。
状態 ? 声明 1 : 声明 2- 状態: true または false をチェックするブール式。
- ステートメント 1: 条件が true の場合に評価される式。
- ステートメント 2: 条件が false の場合に評価される式。
例
以下の例では、値を数値に割り当ててから条件を適用しています。条件が true の場合はステートメント 1 が出力になり、条件が false の場合はステートメント 2 が出力になります。
#include整数 主要 ( )
{
整数 番号 = 10 ;
( 番号 < 二十 ) ? ( プリントフ ( 20番以下ですよ! ) ) : ( プリントフ ( 「20番より大きいよ!」 ) ) ;
戻る 0 ;
}
7: ビット単位の演算子
ビット演算子 C ではデータをビット レベルで操作します。つまり、整数などのデータ型内の個々のビットを操作します。これらは double と float には適用できず、ビットをテストして右または左にシフトするために使用されます。
C プログラミングのビット演算子を次の表に示します。
オペレーター | 関数 |
& | ビットごとの AND |
| | ビットごとの OR |
^ | ビット単位の排他的論理和 |
<< | 左にシフト |
>> | 右にシフト |
~ | 補数 |
例
次の例は、ビット単位の演算子を使用する C プログラムを示しています。
#include整数 主要 ( ) {
整数 ある = 13 ; // バイナリ 1101
整数 b = 7 ; // バイナリ 0111
整数 結果 ;
// ビット単位の AND
結果 = ある & b ; // 1101 & 0111 = 0101 (10 進数の 5)
プリントフ ( 「a & b = %u \n 」 、 結果 ) ;
// ビット単位の OR
結果 = ある | b ; // 1101 | 0111 = 1111 (10 進数の 15)
プリントフ ( 'a | b = %u \n 」 、 結果 ) ;
// ビット単位の XOR
結果 = ある ^ b ; // 1101 ^ 0111 = 1010 (10 進数の 10)
プリントフ ( 「a ^ b = %u \n 」 、 結果 ) ;
// ビット単位の左シフト
結果 = ある << 2 ; // 1101 << 2 = 110100 (10 進数 52)
プリントフ ( 「a << 2 = %u \n 」 、 結果 ) ;
// ビット単位で右シフト
結果 = ある >> 2 ; // 1101 >> 2 = 0011 (10 進数の 3)
プリントフ ( 「a >> 2 = %u \n 」 、 結果 ) ;
// ビット単位の NOT
結果 = ~a ; // ~1101 = 0010 (-14 の 10 進数の 2 の補数表現)
プリントフ ( '~a = %d \n 」 、 結果 ) ;
戻る 0 ;
}
ノート: ビット単位の演算子は、ビット レベルでタスクを実行するために使用されます。つまり、2 進数内の個々のビットを操作します。一方、ブール演算子は、論理値に対する演算を実行するために使用されます。これらはブール値 (true/false または 1/0) を操作し、意思決定プロセスや条件ステートメントでよく使用されます。
結論
演算子は、コンパイラに特定の機能を実行するように指示する記号です。 C 言語には、算術演算子、単項演算子、代入演算子、論理演算子、関係演算子、条件演算子、ブール演算子、ビット演算子などの組み込み演算子がいくつかあります。これらについて詳しく説明し、出力例を使用して説明しました。これらの演算子の詳細については、ガイドの上のセクションをお読みください。