[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