반응형
대부분 C언어를 배울때 맞닥드리는 예제로 변수의 값을 Swap하는 예제가 있다.
예를 들면 a, b 값이 있는데 a = 1 , b = 3 이 들어있다면 간단하게 이 두개의 값을 거로 바꾸는 예제이다.
해결방법은 아래와 같이 간단하다.
temp라는 임시변수에 잠시 값을 복사해두었다가 사용한다.
#include <stdio.h>
int main()
{
int a = 1;
int b = 3;
// 두 값을 swap(바꾸기)
printf("맨처음 값 a=%d, b=%d\n", a,b);
// 값 변경을 위한 임시변수 선언
int temp;
temp = a;
a = b;
b = temp;
printf("변경 후 값 a=%d, b=%d\n", a, b);
return 0;
}
반응형
<포인터를 배운 후, swap 함수 만들기>
함수와 포인터를 배운다면 이제 swap기능을 하는 함수를 만들라는 과제를 받는다.
함수 input 인자는 값을 복사하므로, swap기능을 사용하기 위해서는 주소값에 접근할 수 있는 포인터가 필요하다.
#include <stdio.h>
// 서로의 값을 바꿔주는 swap 함수
void swap(int* x, int* y)
{
// 임시로 값을 저장할 변수 선언
int temp;
// temp에 x값을 저장해두기
temp = *x;
// x값을 y의 값으로 변경
*x = *y;
// x값을 저장하고 있는 temp의 값을 y에게 전달
*y = temp;
}
int main()
{
int a = 1;
int b = 3;
// 두 값을 swap(바꾸기)
printf("맨처음 값 a=%d, b=%d\n", a,b);
// 받는 input인자가 int형 포인터이므로, 주소값을 전달
swap(&a, &b);
printf("변경 후 값 a=%d, b=%d\n", a, b);
return 0;
}
(결과) 이제 이 swap 함수를 지나면 2개의 값이 바뀌게 된다.
반응형
'C언어 \ C++ > 포인터 \ 배열' 카테고리의 다른 글
[C언어] C언어에서 포인터 Const 선언이 갖게 되는 의미 (0) | 2022.02.07 |
---|---|
[C언어] 함수의 받는 인자(input)로 배열(array) 전달하기, 배열을 변경하는 함수 (0) | 2022.02.06 |
[C언어] 배열 내에 여러 문자열 저장하기, 출력하기 (0) | 2022.02.06 |
[C언어] 포인터로 문자열 선언, 배열 문자열 선언과 차이. (문자열 내부 변경하기) (0) | 2022.02.05 |
[C언어] C언어 배열을 포인터로 변환하기 (배열을 포인터로 바꾸기) (0) | 2022.02.05 |