표현식(Expression)은 연산자와 피연산자가 결합된 형태를 말합니다.
여기서 피연산자(Operand)는 연산의 대상이 되는 데이터 항목이며, 연산자(Operator)는 해당 데이터에 대해 특정 연산을 수행하는 기호입니다.
예를 들어 다음과 같은 식이 있을 때,
z = 3 + 2 * 1
곱셈이 덧셈보다 먼저 계산되므로 결과는 다음과 같습니다.
z = 5
C 언어 표현식의 종류
C 언어에서 평가되는 표현식은 크게 다음 여섯 가지로 분류할 수 있습니다.
기본 표현식(Primary Expression) − 피연산자가 변수 이름, 상수 또는 괄호로 묶인 표현식으로 구성됩니다.
예:c = a + (5 * b);후위 표현식(Postfix Expression) − 연산자가 피연산자 뒤에 위치하는 형태입니다.
예:ab+전위 표현식(Prefix Expression) − 연산자가 피연산자 앞에 위치하는 형태입니다.
예:+ab단항 표현식(Unary Expression) − 하나의 연산자와 하나의 피연산자로 구성됩니다.
예:a++,--b이항 표현식(Binary Expression) − 두 개의 피연산자와 하나의 연산자로 구성됩니다.
예:a+b,c-d삼항 표현식(Ternary Expression) − 세 개의 피연산자와 하나의 연산자로 구성되며, 조건문처럼 동작합니다.
형식:Exp1 ? Exp2 : Exp3
Exp1이 참(true)이면 Exp2가 실행되고, 거짓(false)이면 Exp3가 실행됩니다.
예제 코드
다음은 C 언어에서 표현식이 어떻게 평가되는지 보여주는 프로그램입니다. 삼항 연산자를 활용한 예시를 확인해 보세요.
#include <stdio.h>
main(){
int a , b;
a = 10;
printf( "Value of b is %d\n", (a == 1) ? 100: 200 ); // 삼항 표현식
printf( "Value of b is %d\n", (a == 10) ? 10: 20 ); // 삼항 표현식
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Value of b is 200 Value of b is 10
첫 번째 문장에서는 (a == 1)이 거짓이므로 200이 출력되고, 두 번째 문장에서는 (a == 10)이 참이므로 10이 출력됩니다. 이처럼 삼항 표현식은 간단한 조건 분기를 한 줄로 처리할 수 있어 코드를 간결하게 만들어 줍니다.