본문 바로가기
프로그램

[C언어]다양한 연산자의 사용법과 우선순위 기초예시 5강

by y은광 2024. 8. 24.
728x90

C 언어는 다양한 연산을 사용하고 있습니다. 산술연산자, 관계연산자, 논리연산자, 비트연산자, 대입연산자, 증감연산자, 조건연산자, 포인터연산자 sizeof연산자, 쉐도우 연산자 등 있으며, 이들을 조합하여 복잡한 연산을 수행할 수 있습니다. 각 연산자의 사용법과 우선순위를 이해하는 것이 중요합니다. 이번 포스팅은 연산자들의 종류와 내용을 배우고 기초예시를 보겠습니다.

1. 연산자의 종류와 사용법

  • 산술 연산자 : 산술 연산자는 기본적인 수학 연산을 수행합니다.
    • +: 덧셈
    • -: 뺄셈
    • *: 곱셈
    • /: 나눗셈
    • %: 나머지 연산
  • 관계 연산자 : 두 값 간의 관계를 비교합니다.
    • ==: 같음
    • !=: 같지 않음
    • >: 크다
    • <: 작다
    • >=: 크거나 같다 <=: 작거나 같다
  • 논리 연산자 :  논리적 조건을 결합합니다.
    • &&: 논리 AND
    • ||: 논리 OR
    • !: 논리 NOT
  • 비트 연산자 : 비트 단위로 연산을 수행합니다.
    • &: 비트 AND
    • |: 비트 OR
    • ^: 비트 XOR
    • ~: 비트 NOT
    • <<: 비트 왼쪽 시프트
    • >>: 비트 오른쪽 시프트
  • 복합 대입 연산자 : 값을 변수에 할당합니다.
    • = : 단순 대입
    • += : 덧셈 후 대입
    • -= : 뺄셈 후 대입
    • *= : 곱셈 후 대입
    • /= : 나눗셈 후 대입
    • %= : 나머지 후 대입
  • 증감 연산자 : 변수의 값을 증가 또는 감소시킵니다.
    • ++ : 1 증가 (전위 및 후위)  예) a=1; a++; a=a+1; a값을 대입 후 증가 a=1
    • -- : 1 감소 (전위 및 후위) 예) a=1; a--; a=a-1;  a값을 대입후 감소  a=1
  • 조건 연산자 (삼항 연산자) : 간단한 조건문을 한 줄로 작성할 수 있게 해 줍니다.
    • ? ::(조건)? (참일 때의 값) : (거짓일 때의 값)
  • 포인터 연산자 : 포인터와 관련된 연산자를 포함합니다.
    • * : 포인터로부터 값 접근
    • & : 변수의 주소 얻기
  • sizeof 연산자
    • sizeof : 데이터 타입이나 변수의 크기를 바이트 단위로 반환합니다.
  • 쉐도우 연산자 
    • ,  : 여러 표현식을 순차적으로 평가할 때 사용합니다.

2. 연산자 우선순위

기호 및 이름 결합규칙 순위
( ) : 함수호출   [ ] : 인덱스,배열첨자   . : 멤버참조(dot)  ―> : 멤버간접참조 좌에서 우로 1
: 주소  =++ : 우위증가  =-- 후위감소  ++= : 전위 증가  --= : 전위 감소
! : 논리 부정  ~ : 보수  + : 단항+ - : 단항 -   sizeof : 크기  *= : 간접참고
우에서 좌로 2
% : 나머지  * : 곱셈  / : 나눗셈   + : 덧셈   - : 뺄셈 좌에서 우로 3
<< : 좌시프트   >> : 우 시프트   > : 보다 크다   >= : 이상   <  : 보다작다   <=  : 이하 좌에서 우로 4
== : 같다  != : 같지않다  & : 비트곱   ^ : 비트배타적논리합   | : 논립합   && : 논립곱   ||  : 논립합 좌에서 우로 5
: 조건(3항 연산자)  = : 대입 연산자 (+=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=) 예) 덧셈 대입 우에서 좌로 6
: 순차(콤마) 좌에서 우로 7

 

3. 기초예시

  • 증감연산자
#include<stdio.h>
int main(void)
{
  int a=10, b=10;
  int result;
  result = ++a; // a=a+1 실행 후 result=result+a결괏값결과값 11
  printf("전위증가 a의 값 : %d\n", result); 
  result = b++; // b값을 바로 result=result+b 결과값 10
  printf("후위증가b의값 : %d\n", result); 
  return 0;
}

증감결과

 

  • 복합연산자
#include<stdio.h>
int main(void)
{
  int a=10, b=10;
 a+=1; // a=a+1 a에 1을 더한 결괏값 11
 b*=2; // b=b*2 b에 2를 곱한 결괏값 20
  printf("\n"); 
  printf("a = %d   b = %d \n", a, b);  
  return 0;
}

복합연산

 

 

감사합니다.