c01

koeyhoyh·2022년 2월 5일
0

42Seoul

목록 보기
3/11

포인터는 변수의 '주소'를 가리킨다.

왜 변수를 직접 가르킬 수도 있는데 굳이 주소를 가리키나??

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

profile
내가 만들어낸 것들로 세계에 많은 가치를 창출해내고 싶어요.

0개의 댓글