어떻게 함수를 정확하게 사용하여 두 개의 수치를 교환합니까?
#include
void exchange(int, int);
void exchange(int one, int another)
{
int tmp;
tmp = one;
one = anthoner;
another = tmp;
}
int main()
{
int num1;
int num2;
scanf('%d %d', &num1,&num2);
exchange(num1, num2);
printf(' :%d %d', num1, num2);
return 0;
}
함수는 그 안의 국부 변수에 대해 값을 교환했을 뿐이고 진정으로num1,num2에 대한 값을 교환하지 않았기 때문에 실질적으로 함수 호출 창고 바늘이 위로 이동하고 함수 호출이 끝난 후에 창고 바늘이 떨어지고num1,num2가 창고에서 차지하는 위치에 대해 조작하지 않았다.
다음은 올바른 방법입니다.
#include
void exchange(int *, int *);
void exchange(int *one, int *another)
{
int tmp;
tmp =*one;
*one = *anthoner;
*another = tmp;
}
int main()
{
int num1;
int num2;
scanf('%d %d', &num1,&num2);
exchange(&num1, &num2);
printf(' :%d %d', num1, num2);
return 0;
}
함수형 인삼 변수의 데이터 형식을 int*로 바꾸고 실삼을num1과num2의 첫 번째 주소로 바꾸면 함수 호출할 때num1과num2가 있는 메모리 공간의 첫 번째 주소에 값을 부여하고 함수내에one,another에 대한 변화는 실삼num1,num2에 대한 변화입니다!
프로세스:one가 가리키는 공간의 값을 tmp에 복사하고 another가 가리키는 공간의 값을 one가 가리키는 공간에 부여하고 마지막으로 tmp 공간의 값을 another가 가리키는 공간에 부여합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.