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)에 저장된 값을 도출!
이해가 안되는 부분이 있으면 댓글 달아주세용
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
[정처기] 실기 필수암기 내용 (6) | 2021.10.07 |
---|---|
[기사시험] 2021년 기사시험 일정 (0) | 2021.01.04 |
[정처기] 키워드 정리 6 (0) | 2020.11.27 |
[정처기] 키워드 정리 5 (0) | 2020.11.26 |
[정처기] 키워드 정리 4 (0) | 2020.11.22 |