C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++のカンマ演算子とは?仕組みと使い方を実例付きで解説

カンマ演算子とは

C++におけるカンマ演算子(コンマ演算子)は、複数の式をひと続きにつなげて記述するための演算子です。カンマで区切られた式の並び全体の値は、最も右側にある式の値になります。

つまり、左から順に各式が評価・実行されていき、それ以外の式の値はすべて破棄されます。カンマ演算子の本質的な役割は、「一連の操作を順番に実行させること」と言えます。

サンプルコード

次のプログラムは、カンマ演算子の動作を示したものです。

#include <iostream>
using namespace std;

int main() {
    int i, j;
    j = 10;
    i = (j++, j+100, 999+j);
    cout << i;
    return 0;
}

実行結果

このプログラムを実行すると、以下の出力が得られます。

1010

値が計算される流れ

ここで変数 i の値がどのように求められるのか、順を追って見てみましょう。

  1. 最初に j には 10 が代入されています。
  2. 続いて「j++」が評価され、j は 11 にインクリメントされます。
  3. 次に「j+100」が評価されますが、この結果(111)は破棄されます。
  4. 最後に「999+j」が評価され、j の現在の値(11)が足されて 1010 となります。

このように、最も右側の式「999+j」の評価結果だけが全体の値として採用されるため、i には 1010 が代入されるのです。

まとめ

カンマ演算子を使うことで、1つの文の中で複数の処理を順番に実行できます。ただし、実際の値として使われるのは常に一番右の式である点に注意が必要です。可読性の観点からも、乱用せず必要な場面でのみ使うことが推奨されます。

  1. C/C++の三項演算子(条件演算子)の基本と使い方をわかりやすく解説

    C/C++における三項演算子(条件演算子)は、条件に応じて2つの値のどちらか一方を返すための演算子です。if-else文を1行で簡潔に書きたい場合などに活用されます。三項演算子の構文三項演算子の基本的な構文は以下のとおりです。(式1) ? 式2 : 式3この演算子は、式の評価結果に応じて2つの値のいずれかを返します。まず「式1」が評価され、その結果がブール値の true(真) であれば「式2」が評価され、その値が最終的な結果として返されます。逆に false(偽) であれば「式3」が評価され、その値が返されます。サンプルプログラム:2つの数値の最大値を求めるここでは、三項演算子を使って2つの整

  2. C/C++の型キャストとは?基礎から整数昇格・通常の算術型変換まで解説

    型キャスト(型変換)とは、あるデータ型の変数を別のデータ型へ変換する手法のことです。例えば、long型の値を単純なint型の変数に格納したい場合、longをintへキャストすることができます。値をある型から別の型へ明示的に変換するには、キャスト演算子を次の形式で使用します。(型名) 式キャスト演算子の使用例次の例では、キャスト演算子によって整数変数同士の除算が浮動小数点演算として実行されます。#include <stdio.h> main() { int sum = 17, count = 5; double mean; mean = (double) su