포인터는 변수의 '주소'를 가리킨다.
왜 변수를 직접 가르킬 수도 있는데 굳이 주소를 가리키나??
int x = 5;
iny *y = &x;
y를 통해서도 x에 접근할 수 있다는 c언어의 강점!!!
void swap(int *x, int *y)
{
int tmp;
tmp = *x;
*x = *y;
*y = tmp;
}
아니, 매개변수로 받은 값들이 실제로 변경이 된다고?!?!
보통의 함수에서는 매개변수로 받은 값들은 함수 내에서만 변경되고, 값을 보내주려면 return x; 등의 방법으로 밖에 보낼 수 없는데, 포인터를 사용하면? 주소값으로 접근하므로 변경이 된다!!!
int main(void)
{
int i = 10;
int *p;
p = &i;
printf("i=%d\n", i);
*p = 20;
printf("i = %d\n, i);
return 0;
}
'\0' == null
00 ft_ft
포인터를 매개변수 int로 보내고 그 int에 값을 ‘42’로 주는 함수를 작성하세요.
#include <unistd.h>
void ft_ft(int *nbr)
{
*nbr = 42;
}
01 ft_ultimate_ft
#include <unistd.h>
void ft_ultimate_ft(int *********nbr)
{
*********nbr = 42;
}
02 ft_swap
위 문제 참고...
pointer 의 개념에 대해 잘 이해하고 있다면,
0, 1, 2, 3, 4, 5, 6, 7 번은 쉽게 작성할 수 있다.
ft_sort_int_tab
8번은 정렬을 이용한다.
구현이 가장 쉬운 정렬 중, 위에서 만든 swap 함수를 그대로 이용할 수 있는!
버블 정렬을 사용한다!
버블 정렬 참고 : https://dojang.io/mod/page/view.php?id=637