카테고리 없음

[C language]SAWP - 두 변수의 값 바꾸기

어디선가 굴러온 돌 2022. 8. 30. 14:54

SWAP은 두 변수의 값을 변경 할 때 이용한다.

단순 예제는 다음과 같다.

 

#include <stdio.h>

int main()
{
	int a = 5;
	int b = 7;
	int temp;
	
	printf("a:%d b:%d\n\n", a, b);
	temp = a;
	a = b;
	b = temp;
	printf("a:%d b:%d", a, b);

	return 0;
}

temp변수를 이용하여 a를 temp에 담은 후 대입연사자를 이용해 b의 값을 a에 담아준다

그 후 temp에 미리 담아 두었던 a의값을 b에 넣어주므로써 SWAP을 할 수 있다.

다만 SAWP 함수를 만들 때는 이 처럼 만들지않고 포인터를 이용하여 만들어야지 SAWP이 제대로 이루어진다.

#include <stdio.h>

int swap(int a, int b) {
	int* pa = &a;
	int* pb = &b;
	int temp;

	temp = *pa;
	*pa = *pb;
	*pb = temp;

	return printf("%d %d", a, b);

}
int main()
{
	swap(5, 7);
	return 0;
}