2014-11-27 5 views
0

현재 C 프로그래밍 언어 책을 읽고 있는데 다음 코드 부분에 대한 설명이 필요합니다.과제 작업이 실제로 어떤 것을 반환합니까?

void copy(char to[], char from[]) 
{ 
    int i; 
    i = 0; 
    while ((to[i] = from[i]) != '\0') 
    ++i; 
} 

while 루프는 어떻게 작동합니까? 과제가 [i]에 현재 요소를 반환합니까?

미리 감사드립니다. [I]가 [I] 다음 '\ 0'과 비교 될 결과에 할당지고으로부터 먼저

+2

할당 된 값을 반환합니다. 그것은 a = b = 0과 같은 것을 허용합니다. – Max

+0

만약 그것이 중복이라면 전혀 놀랄 일이 아니지만, 링크 된 질문과 정확히 같지는 않습니다! 즉, 할당이 부울로 취급되는 것을 포함하여 루프가 중지되는 이유를 더 일반적으로 묻는 것입니다. 할당 자체에 값이 있음을 확인하는 것입니다. – AAT

+0

여기서 정확한 용어는 "표현식"입니다. 표현식은 어떤 값으로 평가 될 수 있고 다른 효과를 가질 수도 있습니다. 예를 들어, "5"는 따옴표가있는 문자열을 따옴표없이 정수로 평가하는 식입니다. 변수 할당은 또한 표현식입니다. "a = 2"는 C와 같은 언어에서 (1) 숫자 2를 변수 a에 할당하고 (2) 숫자 2로 평가하는 표현식입니다. – vz0

답변

0
while ((to[i] = from[i]) != '\0') 

괄호에서 봐, (0).

관련 문제