자격증/정보처리기사

[필기&실기] C언어 포인터

만땅이 2022. 3. 1. 14:28

C언어 포인터 파트가 문제에 자주 등장한다

처음 접하는 사람은 백프로 뒤돌아서면 까먹고 머리가 터지기 일수...ㅎㅎ

간단하게 개념을 잡고가자!

 

1) 컴퓨터 메모리와 변수

우리가 흔하게 사용하는 int a = 1; 은 

컴퓨터 메모리 한켠에 1을 저장해 두는것이다

 

&a : a 변수의 주소를 저장

*p : (역참조) p 에 저장된 주소로 읽어오기

하는 것이라고 생각하면 된다

 

예를들어,

1)

int a = 10; 
int *p;
print("%p\n",&a);

> 결과값 : 00FFFF 
> 포인터 지정서식자(%p or %x)를 사용하였기 때문에, a의 주소인 00FFFF가 나옴
2)

int a = 10; 
int *p;
p =&a;
print("%p\n",p);

> 결과값: 00FFFF
> 변수 p에 변수 a의 주소값을 저장했고 그것을 프린트 한것이기 때문에 00FFFF가 나옴
3) 

int a = 10; 
int *p;
p =&a;
print("%p\n", &p);

> 결과값: 0HFFFF
> 포인터 p의 주소를 프린트!
4)

int a = 10; 
int *p;
p =&a;
print("%d\n", *p);

> 결과값: 1
> 포인터 p에 저장된 주소값(00FFFF)에 저장된 값을 도출!

이해가 안되는 부분이 있으면 댓글 달아주세용

반응형