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

C言語における各式の種類を徹底解説!初心者向けにサンプルコード付きで紹介

式(Expression)とは、演算子オペランド(被演算子)を組み合わせたものであり、評価すると必ず単一の値に帰着します。演算はデータ項目に対して行われ、このデータ項目を「オペランド」と呼びます。一方、演算子はデータに対して実行すべき操作を表す記号です。

例えば、次のような式を考えてみましょう。

z = 3 + 2 * 1
→ z = 5

C言語の主な式の種類

  • 一次式(Primary Expression):名前(変数)、定数、あるいは括弧で囲まれた式からなる最も基本的なオペランドです。
    例:c = a + (5 * b);

  • 後置式(Postfix Expression):演算子がオペランドの後ろに置かれる形式です。
    例:ab+

  • 前置式(Prefix Expression):演算子がオペランドのに置かれる形式です。
    例:+ab

  • 単項式(Unary Expression):1つの演算子と1つのオペランドで構成されます。
    例:a++、--b

  • 二項式(Binary Expression):2つのオペランドと1つの演算子で構成されます。
    例:a+b、c-d

  • 三項式(Ternary Expression):3つのオペランドと1つの演算子で構成されます。
    形式:Exp1 ? Exp2 : Exp3
    Exp1が真(true)であればExp2が実行され、偽(false)であればExp3が実行されます。

サンプルプログラム

以下は、C言語における各式の種類を実際に確認できるCプログラムです。

#include<stdio.h>
int main(){
    int a,b,c,d,z;
    int p,q,r,s,t,u,v;
    printf("enter the values of a,b,c,d:\n");
    scanf("%d%d%d%d",&a,&b,&c,&d);
    r=a++;        /* 後置インクリメント(単項式) */
    s=--b;        /* 前置デクリメント(単項式) */
    t=a+b;        /* 加算(二項式) */
    u=c-d;        /* 減算(二項式) */
    v=a+(5*b);    /* 括弧を含む一次式 */
    z=(5>3)?1:0;  /* 三項式(条件演算子) */
    printf("unary expression=%d\nunary expression=%d\nBinary expression=%d\nBinary expression=%d\nPrimary expression=%d\nTernary expression=%d\n",r,s,t,u,v,z);
}

実行結果

上記のプログラムを実行すると、次のような出力が得られます。

enter the values of a,b,c,d:
2 3 4 6
unary expression=2
unary expression=2
Binary expression=5
Binary expression=-2
Primary expression=13
Ternary expression=1

まとめ

C言語の式は、構成するオペランドの数や演算子の位置によって「一次式」「後置式」「前置式」「単項式」「二項式」「三項式」に分類できます。特に三項式(条件演算子)はif文の代わりとして簡潔に条件分岐を書けるため、実務でも頻繁に活用されています。それぞれの特徴を理解し、適切に使い分けることで、より読みやすく効率的なコードを書くことができます。

  1. C言語で評価される式の種類とは?6種類の式を徹底解説

    C言語における「式」とは?式(expression)とは、演算子とオペランドを組み合わせたものを指します。オペランドは演算の対象となるデータ項目であり、演算子はそのデータに対して具体的な操作を実行する役割を担います。例えば、次のような式を見てみましょう。z = 3 + 2 * 1 z = 5この場合、「3」「2」「1」がオペランドであり、「*」(乗算)や「+」(加算)が演算子として機能し、最終的に z には 5 が代入されます。C言語で使われる式の種類C言語で評価される式には、主に以下の6種類があります。1. 主式(一次式 / Primary Expressions)オペランドが識別子(変数名

  2. C++で学ぶ式ツリー(Expression Tree)の基本と具体例

    式ツリーとは何か式ツリー(Expression Tree)とは、二分木の一種であり、木の各ノードが「演算子」または「オペランド(被演算子)」のいずれかで構成される特殊なデータ構造です。数式を木構造として表現することで、コンパイラや電卓アプリなどが数式を効率的に解析・評価できるようになります。ノードの役割式ツリーにおける各ノードは、次のように役割が分かれています。葉ノード(リーフノード):オペランド(数値や変数)を表します。非葉ノード(内部ノード):演算子(+、-、*、/ など)を表します。つまり、計算の対象となる値は必ず葉に配置され、それらをどのように処理するかを示す演算子が親ノードとして上に