>  기사  >  백엔드 개발  >  C 언어 함수에 대한 기본 지식은 무엇입니까?

C 언어 함수에 대한 기본 지식은 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2020-06-11 16:36:584548검색


C 언어 함수에 대한 기본 지식은 무엇입니까?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.