C 언어에서 형식 매개변수와 실제 매개변수의 관계는 다음과 같습니다. 형식 매개변수는 실제 매개변수 값의 복사본입니다. 매개변수의 종류에 관계없이 하위 함수에 전달되는 형식 매개변수는 실제 매개변수의 값일 뿐입니다. 따라서 형식 매개변수 변수 자체의 값을 변경하더라도 실제 매개변수와는 아무런 관련이 없습니다. 즉, 형식 매개변수를 변경해도 실제 매개변수에는 영향을 미치지 않습니다.
단, 매개변수 유형이 포인터 유형인 경우 포인터 변수가 가리키는 주소의 데이터를 수정하여 실제 매개변수 주소의 데이터를 변경할 수 있습니다.
따라서 SWAP 함수를 사용하여 데이터를 교환할 때 두 가지 점이 보장되어야 합니다.
매개변수는 교환할 데이터를 가리키는 포인터 유형이어야 합니다.
교환할 때 주소의 데이터를 교환해야 하며, 주소 자체가 아닙니다.
참조 코드:
//잘못된 교환 코드 1
voidswap1(inta,intb)//매개변수가 교환할 데이터에 대한 포인터가 아닙니다
{
intt=a;
a=b;
b= t;
}
//교환 코드 2
voidswap2(int*a,int*b)
{
int*t=a;//형식 매개 변수 자체를 교환
a=b;
b=t;
}
//교환코드 수정
voidswap(int*a,int*b)
{
intt=*a;//정식으로 데이터 교환 매개변수 변수 주소, 포인터 변수는 그대로 유지
*a=*b;
*b=t;
}
포스터에 대한 깊은 이해가 필요합니다 함수의 매개변수와 반환값~
우선 함수의 반환값은 하나의 변수여야 합니다. 스왑 함수의 return(a,b)는 컴파일을 통과하지 못할 수도 있습니다~
에서 동시에 함수의 매개변수는 주소, 값, 참조의 세 가지 형태로 전달될 수 있습니다. 귀하의 경우에는 포인터 방식을 사용하여 스왑에서 a와 b의 값을 직접 수정하는 것이 좋습니다. 코드는 다음과 같습니다:
void swap(int*a, int*b)
{
int t;
t=*a;
*a=*b;
*b= t;
}
main에서 호출되는 메소드는 swap(&a,&b);
위 내용은 CSWAP 코인은 어느 거래소(화폐 거래소)에 상장되어 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!