SWAP
이번주 월요일 회사 면접을 다녀왔다...
기술 면접 때 어떤 TYPE에 대한 SWAP을 구현하라는 문제가 있었는데 너무 긴장한 나머지... 별 이상한 말도 안되는 코드를 작성한 것 같다... 이렇게 쉬운 문제도 실수를 하다니 어이가 없어서 다시 정리해 본다.
x
//int로 구현
void swap(int *a, int *b) // 주소 값을 바꿔
{ //call by Address
//자기가 저장하고 있는 주소번지의 해당 메모리 번지로 찾아가서 그 위치의 변수의 값을 바꿔준다.
int *tmp; // int tmp;
tmp = a; // tmp = *a;
a = b; // *a = *b;
b = tmp; // *b = tmp;
}
void swap2(int a, int b) //Call By Value-그저 값이 복사
{ //swap2안의 함수내에서 값이 교환되어도 main에서는
//main의 a,b는 변화 없음
int tmp;
tmp = a;
a = b;
b = tmp;
}
int main(void)
{
int a = 10;
int b = 20;
swap(&a,&b);
printf("1. %d, %d", a, b);
swap2(a,b);
printf("2. %d %d", a, b);
return 0;
}
'공부 > 개발' 카테고리의 다른 글
go 프로그래밍 - 2.채널 time.After() (0) | 2020.11.12 |
---|---|
GO 프로그래밍 - 기초 1편 환경 설정 (0) | 2020.11.11 |
상속 (0) | 2017.12.27 |
헷갈리는 String (0) | 2017.12.26 |
List, Map, Set의 차이점 (0) | 2017.08.21 |