C 언어에 대한 예시 질문
먼저 작은 벤치에 앉아 노트와 펜을 기억해두고 이 프로그램의 실행 과정을 살펴보면 많은 질문에 대한 답을 알 수 있을 것입니다~
See this 프로그램 후에는 "#include
가장 먼저 살펴봐야 할 것은 메인 함수입니다.
main()
{
printf("10!=%ld\n", fun(10));
}
이것이 주요 기능입니다. 모든 C 언어 프로그램은 항상 주요 기능을 먼저 실행합니다.
"10!=%ld\n"의 앞부분은 다음을 의미합니다. printf=output, " "영어 큰따옴표 안의 텍스트는 직접 출력되지만 %ld는 fun 함수에서 반환된 값입니다. \n은 Enter를 누르고 Enter를 눌러 빈 줄을 남기는 것을 의미합니다.
좋아요, 컴퓨터는 지침의 전반부를 기억한 다음 fun이라는 다른 함수가 주 함수에서 호출된 것을 확인했습니다. 컴퓨터 10 fun 함수의 음수 값이 fun() 함수로 일시적으로 점프하는 것이 주 함수의 후반부의 의미입니다.
컴퓨터는 다음으로 점프했습니다:
long fun(int n)
{
if (n>1)
return (n*fun(n-1));
return 1;
}
긴 정수 유형을 무시할 수 있습니다. fun이라고 합니다. 함수는 먼저 (int n)을 사용하여 정수 변수를 정의합니다. 누가 이 변수를 제어합니까? 이것은 우리 컴퓨터가 메인 함수에서 가져오는 10입니다. 이 프로그램 시작 부분의 n의 음수 값은 메인 함수에 제공되며 이는 단지 시작 값일 뿐입니다.
if (n>1)
return (n*fun(n-1));
return 1;
참조 영어 세미콜론이 두 개 있나요? 이것이 두 문장이라는 뜻입니다. 설명은 if 조건이 충족되면 첫 번째 반환이 실행되고, 충족되지 않으면 두 번째 반환이 실행된다는 것입니다.
우리의 작은 n은 처음에 10과 같습니다. 그런 다음 10을 사용하여 판단하고 10>1이 확립되고 조건이 충족되면 첫 번째 반환을 수행합니다. (10×fun (9 ))
좋아, 여기서 fun(9)가 다시 컴퓨터에 표시되었으므로 컴퓨터는 9를 사용하여 fun 함수의 시작 부분으로 돌아갔습니다. 남은 10×에 대해 걱정할 필요가 없습니다. 우리는 돌아올 것이다.
fun(9)에는 if first, 9>1이 있고 첫 번째 return이 실행된 다음 fun(9×fun(8))이 됩니다. )?, 그리고 등등. n이 더 이상 1보다 크지 않을 때까지, 즉 n=1이 될 때까지 지금은 이를 그대로 둡니다.
10에서 2로 갈 수 있고(n이 변수인 이유를 알 수 있습니다. 왜냐하면 n은 변할 것이기 때문입니다...) 임시로 다음 공식을 얻을 수 있습니다:
10×(9 ×( 8×(7×(6×(5×(4×(2×fun(1)))))))) ()의 우선순위에 따라 가장 안쪽 ()부터 "되돌리기" 시작합니다. p>
fun(1): (1>1)이 true가 아닌 경우 첫 번째 반환을 직접 건너뛰고 두 번째 반환을 살펴봅니다. "return 1;"은 값 1을 반환한다는 의미입니다. 즉, fun(1이라고 말합니다. )=1, 엄청나게 긴 공식을 가져오세요:
10×(9×(8×(7×(6×(5×(4×(2×1) )))))) Will 이 수는? 나는 그것을 계산하지 않을 것입니다. 이 공식이 a와 같다고 가정합시다.
마지막 10×(?)에 도달하면 a를 얻습니다. 상황은 다음과 같습니다:
if (10>1) return (a);
호출하는 사람에게 반환한다는 원칙에 따라 다음과 같은 기본 함수로 돌아갑니다.
printf("10!=a\n")
그런 다음 우리가 볼 수 있는 출력은 다음과 같습니다:
10!=a
(빈 줄)
(a는 숫자입니다!, 저는 그것을 찾고 있습니다. 왜냐하면 문제 기호로 대체했습니다!! a가 너무 길어서 주소가 수용할 수 없을까 봐 긴 정수로 정의했습니다!!!) 이때 전체 프로그램은 10의 레벨을 구합니다. 끝났습니다.
******************************************** *** *********************************************** **** *************************
질문 1: 답변됨
질문 2 : 답변됨 ;
질문 3: 답변됨;
질문 4: 위와 동일
질문 5: 아동용 신발에 대한 답변이 끝났습니다~ 응~