[C++] 쉼표의 여러가지 기능 _ 콤마 연산자 (Comma Operator) 와 분리자 (Seperator)

    반응형

    * 개인적인 공부 기록용으로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다.


    쉼표

    -1 분리자 (Seperator)

    -2 콤마 연산자 (Comma Operator)

    -3 콤마 연산자의 우선순위

    -4 사용예제


    C++에서의 쉼표(,)는 다양한 기능을 수행한다.

     

    -1 분리자 (Seperator)

    첫 번째로 우리에게 가장 익숙한 분리자(Seperator) 기능이 있다.

    int a , b;

    분리자는 말 그대로 변수의 선언을 구분해 준다. 예를 들어 위와 같이 변수의 선언부에 분리자를 사용하면 한줄에 변수 a와 b를 메모리 공간에 할당할 수 있다.

     

    -2 콤마 연산자 (Comma Operator)

    다음으로 쉼표(,)는 콤마 연산자 (Comma Operator) 기능을 수행한다.

    콤마 연산자란 두가지 표현식을 동시에 표현하도록 도와주는 연산자이다.

    콤마 연산자는 첫 번째 표현식을 평가한 후 다음 표현식을 차례로 평가한다. 따라서 다음 코드를 실행시켜 보면 변수 a에는 20이 할당된다.

    int a = (10 , 20);

     

    -3 콤마 연산자의 우선순위

    단, 콤마 연산자를 사용할 때 주의해야 할 점이 있다. 바로 콤마 연산자는 우선순위가 가장 낮은 연산자라는 것이다.

    따라서 다음 식과 같이 괄호를 지워버리면, 콤마 연산자보다 대입 연산자 (=) 의 연산자 우선순위가 더 높아서 컴파일러는 다음과 같이 해석한다.

    int a = 10 , 20;
    (int a = 10) , 20;

     

    -4 사용예제

    콤마 연산자는 for 반복문에서 유용하게 사용된다. 다음과 같이 콤마 연산자를 이용하면 두개의 표현식 (x++ , y++)를 하나로 묶어줄 수 있다.

    for (int x = 0, y = 0 ; x < 10 ; x++, y++) {
    	...
    }

    아래 코드에서 앞의 콤마는 Sepertor(분리자) 이고, 뒤의 콤마는 Comma Operator(콤마 연산자) 이다.

    반응형

    댓글

    Designed by JB FACTORY