본문 바로가기

C언어/C언어 문법

[C언어] 연산자 (산술, 대입, 관계, 논리, 복합대입, 증강 연산자)

728x90
반응형

산술 연산자

 

산술 연산자는 사칙연산에 활용되는 기호들을 의미한다.

 

 

 

 

 

연산식들은 함수의 인자 전달 위치에도 올 수 있다.

 

#include <stdio.h>

int main ()
{
    int num1 = 7;
    int num2 = 2;

    printf("%d + %d = %d \n", num1, num2, num1+num2);
    printf("%d + %d = %d ", 7, 2 , 7+2);
} // 두 개의 printf 함수 모두 같은 값을 출력
 

 

 

 

함수의 인자 전달 위치에는 연산식 뿐만 아니라 다른 함수의 반환값도 올 수 있다.

 

#include <stdio.h>

int main ()
{
    int num = 7;
    printf("%d", sizeof(num)); // int형 변수인 num 의 크기를 출력
}
 

 

 

 

 

 

 

 

대입 연산자

 

대입 연산자는 초기화를 할 때나 값을 대입할 때 사용되는 연산자이다.

 

 

 

 

수학에서의 equal 과 결과적으로 같다고 생각할 수 있지만 다른 의미를 지니고 있다.

 

수학에서의 equal 과 같은 의미를 지니는 것은 바로 아래에서 소개할 관게 연산자 '==' 이다.

 

 

 

 

 

 

 

 

 

관계 연산자

 

두 변수 혹은 상수끼리의 대소 혹은 동등 여부를 판단하는 연산자이다.

 

 

 

 

여기서 해당 연산자의 기능과 값이 일치하면 True를, 그렇지 않으면 False를 반환한다.

 

기계가 인지하는 False 값은 0이고 True 값은 0 이외의 다른 문자이다.

 

통상적으로 True 값으로 1을 주로 사용한다.

 

 

 

 

 

 

 

 

 

 

 

 

논리 연산자

 

논리 연산자는 한 개 혹은 두 개의 논리식이 참인지 거짓인지를 판단하는 연산자이다.

 

 

 

여기서 논리연산자 | 는 수직선 기호로 'shift + \'로 사용할 수 있다.

 

방금 언급한 관계 연산자와 함께 논리연산자 사용의 예시를 들어보겠다.

 

 

#include <stdio.h>

int main ()
{
    int six = 6;
    int five = 5;
    int result1 = 0, result2 = 0, result3 = 0;
    
    result1 = (six==6 && five==6); // 하나만 참이므로 거짓을 반환, 0을 반환
    result2 = (six==6 || five==6); // 하나라도 참이므로 참을 반환, 1을 반환
    result3 = (!six==6); // 하나만 참이므로 거짓을 반환, 0을 반환

    printf("result1 = %d, result2 = %d, result3 = %d", result1, result2, result3);
}
 
 
 

 

 

 

 

 

 

복합 대입 연산자

 

복합 연산자의 종류는 다음과 같다.

*=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=

 

이 연산자들의 의미는 모두 다음과 같다.

 

 

메이플스토리체 사용

 

 

 

이외에 <<=, >>=, &=, ^=, |= 도 모두 마찬가지이다.

예시를 들기 위해 코드를 작성해보겠다.

 

#include <stdio.h>

int main ()
{
    int a = 10;
    int b = 5;
    a /= b; // a = a / b
    printf("%d", a); // a = 10/5 이므로 2 출력
    return 0;
}
​

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'C언어 > C언어 문법' 카테고리의 다른 글

[C언어] 심볼릭 상수 (Symbolic Const)  (0) 2024.02.08
[C언어] 형변환 (Type Casting)  (0) 2024.02.07
[C언어] 비트 연산, 비트 연산자  (0) 2024.01.24
[C언어] sizeof 함수  (0) 2024.01.23
[C언어] 필드 폭 지정  (0) 2024.01.23