for (int n = 1, nsqr = n * n; n < 10; n++, nsqr = n * n)
printf("%d %d\n", n, nsqr);
printf() 안의 ,
는 operator가 아닌 separator의 역할만 수행한다.
int i, j;
i = 1;
i++, j = i; // comma is a sequence point
printf("%d %d\n", i, j);
int x, y, z;
z = x = 1, y = 2;
대입 연산자는 오른쪽에서 왼쪽으로 대입하는 방식이다.
그러므로 1이 x에 들어가고, 그 다음 z에 1인 x가 대입되는 방식이다.
printf("x=%d, y=%d, z=%d \n", x, y, z);
z = (x = 1), (y = 2);
printf("x=%d, y=%d, z=%d \n", x, y, z);
z = ((x = 1), (y = 2));
printf("x=%d, y=%d, z=%d \n", x, y, z);
마지막은 1이 x에 들어가고, 2가 y에 들어간다.
,
는 오른쪽의 수가 나오게 된다. 그러므로 2가 출력이 된다.
int my_money = (123, 456);
printf("%d\n", my_money); // 오른쪽의 456이 출력된다.