포인터를 배우면 가장 먼저 작성하는 함수 중 하나인 스왑함수 swap
#include<stdio.h>
void swap(int *a, int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
int main(void){
int a=5,b=7;
printf("before\t a :%d b:%d\n",a,b);
swap(&a,&b);
printf("after\t a :%d b:%d",a,b);
}
포인터로 주소를 넘긴다.
swap(&a,&b) ; 주소를 넘기기 때문에 swap 함수에서 main 함수로 영향을 줄 수 있다. 자동 변수의 한계를 넘는다. 스택에 함수가 있어도 값을 변경할 수 있다. 서로 다른 함수에 있는 자동 변수들은 함수가 사라지면 값도 사라진다. 하지만 포인터 문법을 사용하면 그 한계를 넘을 수 있다. 주소값을 주기 때문에 주소에 해당하는 값을 직접 접근하여 수정할 수 있다. 이것이 바로 포인터다.
아래는 스왑함수 활용 후 표준 출력한 결과 화면이다.
'C_C++' 카테고리의 다른 글
sqrt() 함수 직접 만들어보자. (0) | 2020.07.06 |
---|---|
재귀 문법을 활용하여 팩토리얼 구하기 (0) | 2020.07.06 |
write() 함수로 0~9 숫자 출력 (0) | 2020.07.06 |
putchar() 함수로 알파벳 순서대로 출력하기 (0) | 2020.07.06 |
write()함수로 겹치지 않는 숫자 출력해보기 (1) | 2020.07.06 |