2017-05-21 1 views
-3

C++에서 연산자와 연산자가 어떻게 작동하는지 배우는 동안이 코드 스 니펫을 보았습니다. 나는 그것이 "412"를 출력한다는 것을 압니다. 그러나 어떻게 그렇게되는지 이해하지 못합니다. 간단하고 깨끗한 설명은 감사하겠습니다. 감사!C++ 연산자,이 코드 스 니펫은 어떻게 작동합니까?

int main() 
{ 
int a[5] = { 1 }, b[] = { 4, 1, 2, 0, 3 }; 
for (int i = 0; i<5; i++) 
{ 
    if (!(a[i] = b[i])) break; // note: = not == 
    cout << a[i]; 
} 
cout << endl; 
} 
+0

작동하지 않습니다. 구문과 의미를 구별해야합니다. –

+0

잘못된 형식의 정렬. –

+1

디버거에서 코드를 단계별로 실행하고 각 문 다음에 변수 값을 검사 할 수 있습니다. –

답변

2

= 연산자는 왼쪽 변수의 값을 오른쪽에 할당하고 값을 반환합니다. ! 연산자는 인수가 0이면 true를 반환하고 그렇지 않으면 false를 반환합니다.

  1. 를 할당 b[i]
  2. (지금 b[i] 동일) a[i]
  3. 휴식 경우 제로
  4. a[i]에 : 함께 이러한 퍼팅

    , 우리는 루프의 한 반복이 다음을 수행 말할 수 있습니다 인쇄물 a[i] (다시 지금은 b[i]과 같습니다)

따라서 코드 전체는 b의 요소를 처음 0에 도달 할 때까지 인쇄합니다. 결과는 '412'로 인쇄됩니다.

+0

감사합니다. –

관련 문제