본문 바로가기

카테고리 없음

[C언어] 쉼표 연산자

void main()
{
	int su_1, su;

	su_1 = 2;
	su = su_1 + 2;
	printf("su = %d\n", su);

	su = (su_1 = 2, su_1 + 2);
	printf("su = %d\n", su);
}

프로그램 실행화면


쉼표 연산자가 있다는 것을 알게 되었다. 가끔 for문을 사용할 때 for(i = 1, j = 3;생략) 이런 식으로 사용한 적은 있었다.


그저 for문에서나 쓸 수 있겠지 라고 넘겼었는데 생각해보니 변수를 선언할 때도 쉼표 연산자를 쓰고 있었다. 이것도 삼항 연산자와 비슷하게 거의 쓰지 않는다.


아니 쓰는 곳이 제한적이라고 할 수 있겠다. for문이나 변수를 선언할 때 말고 수식을 계산할 때는 거의 쓰지 않는다. 삼항 연산자와 비슷하게 가독성이 떨어지기 때문이다.


위에 있는 소스코드는 똑같은 내용을 두번 반복하도록 했다. 쉼표 연산자는 왼쪽에 있는 것을 먼저 계산하고 오른쪽에 있는 것을 실행한다.


그래서 su_1에 2가 저장되고 그 값에서 2를 더한 값이 su에 저장되어 4가 출력되게 된다.