> 백엔드 개발 > C#.Net 튜토리얼 > C 언어에서 함수를 호출하는 세 가지 방법은 무엇입니까?

C 언어에서 함수를 호출하는 세 가지 방법은 무엇입니까?

青灯夜游
풀어 주다: 2021-04-21 17:24:42
원래의
56395명이 탐색했습니다.

C 언어에서 함수를 호출하는 세 가지 방법은 다음과 같습니다. 1. 변수 값을 함수의 형식 매개변수에 전달하는 값에 의한 호출 2. 변수의 주소를 전달하는 참조에 의한 호출 3. 주소 호출은 변수 참조를 함수에 전달하는 포인터를 통해 구현됩니다.

C 언어에서 함수를 호출하는 세 가지 방법은 무엇입니까?

이 문서의 운영 환경: Windows 7 시스템, 버전 C11, Dell G3 컴퓨터.

C 언어에서 함수를 호출하는 세 가지 방법은 값에 의한 호출, 참조에 의한 호출, 주소에 의한 호출입니다.

1. 값에 의한 호출

값에 의한 호출은 변수의 값을 함수의 형식 매개변수에 전달하는 것입니다. 실제로는 변수의 값을 사용하여 새로운 형식 매개변수를 생성하고, 형식 매개변수 연산 후의 값입니다.

함수 내에서 변경된 값은 외부 세계에 영향을 미칠 수 없으므로, 함수 내에서 형식 매개변수를 변경해도 함수 외부의 변수 값에는 영향을 미치지 않습니다.

코드 예시를 통해 이해해 봅시다:

#include<stdio.h>  
void myswap(int x, int y)  
{  
    int t;  
    t=x;  
    x=y;  
    y=t;  
}  
int main()  
{  
    int a, b;  
    printf("请输入待交换的两个整数:");  
    scanf("%d %d", &a, &b);  
    myswap(a,b);  //作为对比,直接交换两个整数,显然不行  
    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);  
    return 0;  
}
로그인 후 복사

실행:

C 언어에서 함수를 호출하는 세 가지 방법은 무엇입니까?

[동영상 튜토리얼 추천: C 언어 튜토리얼]

분석:

이유는 값 전달을 사용하는 것입니다. 호출 시에만 형식 매개변수의 값이 변경되지만 실제 매개변수의 값은 변경되지 않습니다.

2. 주소로 호출

주소로 호출하는 것은 변수의 주소를 함수에 직접 전달하는 것입니다. 포인터는 실제 변수의 주소를 가리킨다. 왜냐하면 포인터가 가리키는 주소의 내용이 변경되면 함수 외부에 반영될 수 있기 때문이다. 즉, 함수 외부의 변수 값이 변경될 수 있기 때문이다.

코드 예시를 통해 이해해 봅시다:

#include<stdio.h>  
void myswap(int *p1, int *p2)  
{  
    int  t;  
    t=*p1;  
    *p1=*p2;  
    *p2=t;  
}  
int main()  
{  
    int a, b;  
    printf("请输入待交换的两个整数:");  
    scanf("%d %d", &a, &b);  
    myswap(&a,&b);  //交换两个整数的地址  
    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);  
    return 0;  
}
로그인 후 복사

실행:

C 언어에서 함수를 호출하는 세 가지 방법은 무엇입니까?

분석:

상호작용이 성공한 이유는: 주소로 호출을 사용하고 포인터를 사용하여 원래 주소를 변경하므로 실제 매개변수가 교환됩니다.

3. 참조 호출은 실제로 포인터를 통해 구현됩니다. 변수 참조는 주소 호출을 사용하는 것과 같은 효과를 얻을 수 있습니다. 함수의 값이 수정될 수 있습니다. 코드 예시를 통해 이해해보자:

#include<stdio.h>
void myswap(int &x, int &y)
{
    int t;
    t=x;
    x=y;
    y=t;
}
  
int main()
{  
    int a, b;
    printf("请输入待交换的两个整数:");
    scanf("%d %d", &a, &b);
    myswap(a,b);  //注意:这里调用方式与传值调用一样,直接以变量a和b作为实参交换
    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
    return 0;
}
로그인 후 복사

Run:

분석:

C 언어에서 함수를 호출하는 세 가지 방법은 무엇입니까?상호작용이 성공한 이유: 참조에 의해 호출, 참조는 두 개의 실제 매개변수 변수 a의 값을 직접 변경함 그리고 b, 그래서 그냥 교환했어요.

위 내용은 C 언어에서 함수를 호출하는 세 가지 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿