C 언어 함수에 대한 기본 지식은 무엇입니까?
C 언어 함수에 대한 기본 지식은 다음과 같습니다.
1. 정의, 선언 및 호출
기능: | 재사용 가능한 코드 조각 |
세 의 요소 함수: | 반환 값 함수 이름 함수 매개 변수 목록 |
함수 선언: | 함수의 세 가지 요소를 포함합니다. |
함수 정의: | 함수의 특정 구현 |
반환 값: | 함수가 값을 반환하지 않으면 void |
로 작성하세요. 함수 매개변수 목록: | 매개변수가 없으면 공백으로 작성하고, 쉼표 |
로 변수를 구분하세요. :
함수가 선언되면 형식적인 매개변수 변수 이름을 추가할 필요 없이 유형만 추가하면 됩니다
int add(int, int);
3. 함수 정의:
함수가 정의되면, 형식 매개변수에는 변수 이름이 있어야 합니다.
int add(int a, int b) { int sum = a + b; return sum; }
4. 함수 호출:
함수가 주 함수 위에 정의된 경우 함수 선언을 작성할 필요가 없습니다.
메인 함수 아래에 함수가 정의된 경우, 해당 구문은 메인 함수 위에 작성해야 합니다
int main() { int a = 10; int b = 20; // 函数调用的时候,传的参数叫实参 int sum= add(a, b); printf (“sum = %d\n”, sum); return 0; }
5. 함수 이름
함수 이름은 함수의 진입 주소입니다
함수 포인터 정의:
int (*p)(int a.int b) =add;
6. 재귀 함수
함수 본문 내에서 자신을 호출하는 함수를 재귀 호출이라고 합니다. 재귀 함수를 실행하면 자신을 반복적으로 호출하여 매번 새로운 수준으로 들어갑니다.
재귀를 사용하여 n을 계산합니다. 계승 n!의 계산 공식은 다음과 같습니다.
공식에 따른 프로그래밍:
long factorial(int n) { long result; if(n ==0 || n ==1) { result = 1; } else { result = factorial(n-1) * n; // 递归调用 } return result; }
이것은 일반적인 재귀 함수입니다. 계승을 호출한 후 함수 본문은 n== 0 또는 n==1인 경우에만 실행을 종료하고, 그렇지 않으면 계속 자체 호출합니다.
각 호출의 실제 매개변수가 n-1이므로, 즉 n-1의 값이 형식 매개변수 n에 할당되므로 최종 n값이 나올 때까지 재귀 실제 매개변수의 값이 1씩 감소됩니다. -1은 1이다. 다시 재귀 호출이 이루어지면 형식 매개변수 n의 값도 1이 되어 재귀가 종료되며, 레이어별로 빠져나가게 된다.
예를 들어 5!를 찾으려면 계승(5)을 호출하세요. 계승 함수 본문을 입력하면 n=5가 0 또는 1이 아니므로 result = 계승(n-1) * n; 즉, result = 계승(5-1) * 5;이 실행되며, 다음 단계는 계승(4)을 호출하는 것입니다. 이것이 첫 번째 재귀입니다.
4번의 재귀 호출 후 실제 매개변수의 값은 1, 즉 계승(1)이 호출됩니다. 이 시점에서 재귀는 종료되고 레이어별로 반환되기 시작합니다. 계승(1)의 값은 1, 계승(2)의 값은 12=2, 계승(3)의 값은 23=6, 계승(4)의 값은 64=24, 최종 결과는 다음과 같습니다. 계승(5)의 값은 245=120입니다.
참고:
1. 재귀 호출이 종료되지 않고 진행되는 것을 방지하려면 함수 내에서 재귀 호출을 종료할 수 있는 수단이 있어야 합니다. 일반적인 방법은 조건부 판단을 추가하는 것입니다. 특정 조건이 충족되면 더 이상 재귀 호출이 이루어지지 않고 레이어별로 반환됩니다.
2. 재귀 호출은 이해하기 어려울 뿐만 아니라 비용도 많이 들기 때문에 꼭 필요한 경우가 아니면 사용하지 않는 것이 좋습니다. 많은 재귀 호출은 반복(루프)으로 대체될 수 있습니다.
추천 튜토리얼: "C 동영상 튜토리얼"
위 내용은 C 언어 함수에 대한 기본 지식은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!