6일차 - 오퍼레이터

💯 Days of Code 챌린지 6일차가 다가오면서 산술, 단항, 논리, 조건/삼항 연산자를 포함한 여러 연산자에 대해 배웠습니다.

산술 연산자



C에는 5개의 산술 연산자가 있습니다.


운영자
목적


+
덧셈

-
빼기

*
곱셈

/
분할

%
정수 나누기 후 나머지


Note - The % operator is sometimes referred to as the modulus operator. There is no exponentiation operator in C. However, there is a library function (pow) to carry out exponentiation.




단항 연산자



C에는 새로운 값을 생성하기 위해 단일 피연산자에 작용하는 연산자 클래스가 포함되어 있습니다. 이러한 연산자를 단항 연산자라고 합니다. 일부 단항 연산자는 피연산자 뒤에 작성되지만 단항 연산자는 일반적으로 단일 피연산자 앞에 옵니다.

일반적으로 사용되는 다른 두 가지 단항 연산자는 증가 연산자++와 감소 연산자 −−입니다. 증가 연산자는 피연산자를 1씩 증가시키는 반면 감소 연산자는 피연산자를 1씩 감소시킵니다. 이러한 각 연산자와 함께 사용되는 피연산자는 단일 변수여야 합니다.

예 -

#include <stdio.h>

void main() {
    int i = 0;
    printf("i = %d\n",i); // 0
    printf("i = %d\n",i++); // 0
    printf("i = %d\n",i); // 1
    printf("i = %d\n",++i); // 2
}

++i 연산은 먼저 i의 값을 증가시킨 다음 새 값을 인쇄하는 반면 i++ 연산은 먼저 값을 인쇄한 다음 1씩 증가시킵니다.

이때 언급할 가치가 있는 또 다른 단항 연산자는 sizeof 연산자입니다. 이 연산자는 피연산자의 크기를 바이트 단위로 반환합니다. sizeof 연산자는 항상 피연산자 앞에 옵니다. 피연산자는 표현식이거나 캐스트일 수 있습니다.

#include <stdio.h>

void main() {
    int i;
    float f;
    char c;
    printf("Integer  = %d\n",sizeof i);
    printf("Float  = %d\n",sizeof f);
    printf("Char  = %d\n",sizeof c);
}


출력 -

Integer  = 4
Float  = 4
Char  = 1


Addressof 연산자(&): 변수의 주소를 제공합니다. 변수의 메모리 주소를 반환하는 데 사용됩니다. address-of 연산자에 의해 반환된 이러한 주소는 메모리의 변수를 "가리키기"때문에 포인터라고 합니다.

#include <stdio.h>

void main() {
    int i = 0;
    int* ptr;
    ptr = &i;
    printf("%d",ptr); // 6422036
}



관계 연산자



관계 연산자는 두 피연산자 간의 특정 관계가 참인지 확인합니다. 결과는 1(참을 의미) 또는 0(거짓을 의미)으로 평가됩니다. 이 결과는 종종 제어 흐름에 영향을 미치기 위해 사용되지만(if, while, for를 통해) 변수에 저장될 수도 있습니다.

C에는 4개의 관계 연산자가 있습니다.


운영자
의미


<
미만

<=
이하

>
~보다 큰

>=
보다 크거나 같음


같음 연산자는 관계 연산자와 매우 유사합니다.


운영자
의미


==
동일

!=
같지 않다


이 6개의 연산자는 참 또는 거짓 조건을 나타내는 논리식을 형성하는 데 사용됩니다.


논리 연산자



관계 연산자와 같음 연산자 외에도 C에는 두 개의 논리 연산자(논리 연결이라고도 함)가 있습니다. 그들은


운영자
의미


&&
그리고

\
\



조건부 연산자/삼항 연산자



간단한 조건부 연산은 조건 연산자(? :)로 수행할 수 있습니다. 조건 연산자를 사용하는 식을 조건식이라고 합니다. 이러한 표현은 보다 전통적인 if-else 문 대신 쓸 수 있습니다.

구문 -

expression 1 ? expression 2 : expression 3


조건식을 평가할 때 expression 1가 먼저 평가됩니다. expression 1가 참이면(즉, 값이 0이 아닌 경우) expression 2가 평가되고 이것이 조건식의 값이 됩니다. 그러나 expression 1가 거짓이면(즉, 값이 0이면) expression 3가 평가되고 이것이 조건식의 값이 됩니다. 조건식의 값을 결정할 때 포함된 식(expression 2 또는 expression 3 ) 중 하나만 평가됩니다.

예 -

#include <stdio.h>

void main() {
    int i = 10;
    int j = (i > 5) ? 20 : 30;
    int k = (i < 5) ? 20 : 30;
    printf("%d,%d",j,k); // 20,30
}


조건 연산자는 중첩될 수 있습니다. 예를 들어 다음 코드는 세 숫자 중 더 큰 숫자를 결정합니다.

big = a > b ? (a > c ? a : c)
            : (b > c ? b : c);

좋은 웹페이지 즐겨찾기