#include<stdio.h>
int i;
int increment(int i)
{
return ++i;
}
int main()
{
for(i=0;i<10;increment(i))
{
printf("%d",i);
}
return 0;
}
여기서 출력은 000000입니다. 즉, 무한 루프가 발생합니다.은이 no-op 또는 다른 것입니까?
++ i (증분 함수로 반환 됨) 값을 저장하는 변수가 없거나 다른 이유로 인해 연산이 필요하지 않음을 알고 싶습니다. .설명 해주십시오.
'for (i = 0; i <10; i = 증분 (i))'과 비교하고 [Call by Value] (http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_value) 함수 또는 프로 시저가 해당 매개 변수에 값을 할당 할 수 있으면 해당 로컬 복사본 만 할당됩니다. 즉, 함수 호출로 전달 된 모든 내용은 함수가 반환 될 때 호출자의 범위에서 변경되지 않습니다. " (음영 처리 기능도 있습니다. increment의 매개 변수가'x' 인 경우 동일합니다.) –