Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 기초: 논리 연산자와 할당 연산자 완벽 정리

C 언어에서 조건을 판단하고 값을 저장하는 데 반드시 알아야 할 두 가지 핵심 요소가 바로 논리 연산자(logical operator)할당 연산자(assignment operator)입니다. 이 글에서는 각 연산자의 개념과 진리표, 실제 예제 코드와 실행 결과까지 차근차근 살펴보겠습니다.


논리 연산자(Logical Operator)란?

  • 두 개 이상의 표현식(조건식)을 논리적으로 결합하여 참(T)/거짓(F)을 판별할 때 사용합니다.

  • 종류는 논리 AND(&&), 논리 OR(||), 논리 NOT(!) 세 가지입니다.

논리 AND (&&)

두 표현식이 모두 참일 때만 결과가 참이 됩니다.

exp1exp2exp1 && exp2
TTT
TFF
FTF
FFF

논리 OR (||)

두 표현식 중 하나라도 참이면 결과가 참이 됩니다.

exp1exp2exp1 || exp2
TTT
TFT
FTT
FFF

논리 NOT (!)

피연산자의 참/거짓을 반대로 뒤집는 단항 연산자입니다.

exp!exp
TF
FT

연산자별 예시

a=10, b=20, c=30일 때의 계산 결과입니다. C 언어에서는 참은 1, 거짓은 0으로 출력됩니다.

연산자설명예제 식계산 과정결과
&&논리 AND(a>b)&&(a<c)(10>20)&&(10<30)0
||논리 OR(a>b)||(a<=c)(10>20)||(10<=30)1
!논리 NOT!(a>b)!(10>20)1

논리 연산자 예제 프로그램

다음은 논리 연산자를 활용한 C 프로그램입니다.

#include<stdio.h>
main (){
    float a=0.5, b=0.3, c=0.7;
    printf("%d\n",(a<b)&&(b>c)); // 0
    printf("%d\n",(a>=b)&&(b<=c)); // 1
    printf("%d\n",(a==b)||(b==c)); // 0
    printf("%d\n",(b>=a)||(a==c)); // 0
    printf("%d\n",(b<=c)&&!(c>=a)); // 0
    printf("%d\n",!(b<=c)||(c>=a)); // 1
}

실행 결과

0
1
0
0
0
1

할당 연산자(Assignment Operator)란?

할당 연산자는 변수에 값을 대입(저장)할 때 사용하는 연산자입니다.

할당 연산자의 종류

  • 단순 대입(simple assignment): 오른쪽 값을 그대로 변수에 저장합니다.
  • 복합 대입(compound assignment): 산술 연산과 대입을 한 번에 처리합니다.
연산자설명예제
=단순 대입a=10 → a에 10을 저장
+=, -=, *=, /=, %=복합 대입a+=10 → a=a+10
a-=10 → a=a-10

복합 대입 연산자 예제 프로그램

다음은 다양한 복합 대입 연산자를 사용한 C 프로그램입니다. 문자형 변수 a에 연산을 적용하면 아스키(ASCII) 코드 값 기준으로 계산됩니다.

#include<stdio.h>
int main(void){
    int i;
    char a='h';
    printf("enter the value of i:\n");
    scanf("%d",&i);
    printf("print ASCII value of %c is %d\n", a, a);
    a += 5;
    printf("print ASCII value of %c is %d\n", a, a);
    a *= a + i;
    printf("a = %d\n", a);
    a *= 3;
    printf("a = %d\n", a);
    a /= 2;
    printf("a = %d\n", a);
    a %= 4;
    printf("a = %d\n", a);
    return 0;
}

실행 결과

enter the value of i:
3
print ASCII value of h is 104
print ASCII value of m is 109
a = -80
a = 16
a = 8
a = 0

이처럼 논리 연산자는 여러 조건을 결합해 판단할 때, 할당 연산자는 변수에 값을 효율적으로 저장하고 갱신할 때 사용됩니다. 두 연산자를 잘 이해하면 조건문(if, while 등)과 데이터 처리 로직을 훨씬 깔끔하게 작성할 수 있습니다.