[자료구조] 포인터 활용

_찬·2022년 9월 26일
0

자료구조

목록 보기
3/5
post-thumbnail

어제는 포인터의 개념에 대해서만 정리를 해보았다.
그래서 오늘은 포인터를 어떻게 사용하는지 알아보려 한다.

기본

포인터 변수 a 를 활용하여 변수 b의 값을 저장하여 출력시켜 보겠다.

#include <stdio.h>

int main()
{
	int* a; // 포인터 변수 a (정수형) 
    int b; // 변수 b (정수형) 
    a = b;
    printf("%d %d", a, b);
    return 0;
}

이렇게 하면 에러가 뜨게 된다.

왜일까?

포인터 변수와 일반 변수와는 다르기 때문이다.

그럼 이렇게 하면 된다.

&는 주소 연산자 이것을 사용할 것이다.

a = &b // 포인터 변수 a에 b의 주소값을 저장한다.

이렇게 하면 a에는 b의 주소값이 담기게 된다.
주소값이 같다면 결국 같은 값을 가진 변수가 된다.

출력시켜 보겠다.


#include <stdio.h>

int main()
{
	int* a; // 포인터 변수 a (정수형) 
    int b = 5; // 변수 b (정수형) 
    a = &b;
    printf("%d %d", a, b);
    return 0;
}

왜 a에는 이상한 숫자가 담기게 될까?
이유는 간단하다

b의 주소값을 넘겨주었기 때문에, b의 주소가 출력이 된다.


그럼 이럴 때는 주소의 값을 나타내는 * 역참조 연산자를 사용할 수 있다. 역참조 연산자는 주소가 가리키는 값을 가져온다.
#include <stdio.h>

int main()
{
	int* a; // 포인터 변수 a (정수형) 
    int b = 5; // 변수 b (정수형) 
    a = &b;
    
    if(*a == b) printf("a와 b는 같습니다.");
    else printf("a와 b는 다릅니다."); 
    
    return 0;
}

이렇게 된다.

profile
꾸준한 사람이 되길!

0개의 댓글