교재에 이부분이 이해가 안되네요,,,

bm142857 Reply 9 years 31 weeks ago
교재 21쪽에 The line nl = nw = nc = 0; sets all three variables to zero. This is not a special case, but a consequence of the fact that an assignment is an expression with a value and assignments associate from right to left. It’s as if we had written nl = (nw = (nc = 0)); 이부분이 이해가 안됩니다 =0= 대충 해석을 해보면 그 줄 nl = nw = nc = 0; 은 모든 3개의 변수를 0으로 설정한다. 이것은 특별한 케이스가 아니나, 그 할당이 값과 함게한 표현이라는 것과 할당이 오른쪽에서 왼쪽으로 연관된다는 사실의 결과이다. 만약에 우리가 이렇게 쓴 것과 같다. nl = (nw = (nc = 0)); 이게 대체 무슨말이죠?
booksky Reply 9 years 31 weeks ago
책 2.12에 해당 내용에 대한 설명이 자세히 있습니다. = 기호는 assignment(할당)연산자라고 해서, 대부분의 기호가 왼쪽->오른쪽 순으로 진행되는데 비해 assignment 연산자는 왼쪽<-오른쪽 순서로 진행됩니다. 예를 들어 a + b - c + d = ((a + b) - c) + d 라고 생각할 수 있는 것처럼 nl = nw = nc = 0는 반대로 오른쪽부터 먼저 실행하기 때문에 nl = (nw = (nc = 0))과 같은 의미를 지니게 되는 것이죠. 과정을 좀 더 자세히 풀어적으면 nl = (nw = (nc = 0)) nl = (nw = (0)) nl = ((0)) 이렇게 되기 때문에 nl, nw, nc가 모두 0이 되는 것입니다.
bm142857 Reply 9 years 31 weeks ago
와~~ 감사해요 >0<