[c언어] c언어 포인터 부분 알기쉽게
- 최초 등록일
- 2003.11.02
- 최종 저작일
- 2003.11
- 13페이지/ 텍스트
- 가격 1,000원
소개글
더 궁금한거 있으시면 egg--@hanmail.net으로 문의주세요
목차
Ⅰ. 포인터의 개념.
III. 2차원 포인 터
V. 포인터 배열
VI. void/ null 포인터
VII. 배열과 포인터의 미팅
본문내용
Ⅰ. 포인터의 개념.
1. 포인터는 무엇일까?
포인터(pointer)는 말 그대로 어디를 가리킨다는 뜻이다. 내가 알기로는 공부하면 할 수록 포인터의 기능을 빼면 씨는 시체라는 생각이 든다는 것이다. 포인터는 단순히 어느 변수를
가리키는 것 이외 파일의 첫머리라던지 거의 프로그램에 필요한 모든 요소를 가리킬 수있다.여기서 가리킬 수 있다는 말은 우리가 가리켜진 변수를 포인터를 이용해서 간접적으로
다룰 수 있다는 말이다. 일종의 끄나풀 같은 존재이다.
어느날 보거스는 집으로 가다가 예쁜 여학생을 만났다. 한 눈에 반한 보거스는 그 여자 아이의 집을 수소문 해보았다. 그랬더니 준철이라는 놈이 그 여자 아이의 주소를 알고 있다는
것이다 보거스는 그 여자 아이의 주소를 알기 위해 준철이를 찾아가야 한다. 보거스가 준철이를 찾아 갔더니 준철이는 손가락으로 그 여자 아이집을 가리킬 뿐이었다. 그리고는 주소
를 대라고 했더니 100번지라고 했다.
이것을 씨로 비유해보자. 보거스는 프로그램을 짜는 바로 액트 이고 준철(준철이의 집은 200번지 이다)이는 포인터 변수, 여자아이는 임의의 어떤 변수이다. 준철이는 여자의 주소를
알고 있다.
200 준철 ----> 100 여자
100 'f'
변수가 메모리에 위치하는 형태를 간략하게 표시하려고 만든 형식이다.
[변수의 주소] [변수이름]
[변수값]
그러니까.. 위의 그림은 200번지의 준철이는 100번지의 여자변수의 값을
가지고 있는 셈이 된다. 이것을 씨로 나타내면
에제1)
#include <stdio.h>
void main(void)
{
int *wolf, girl='f';
wolf = &girl;
printf("%d\n\n", girl); /*girl 변수 값 */
printf("%p\n", &girl); /*girl 의 주소값 */
printf("%p\n", &wolf); /* 포인터 변수 wolf의 주소 */
printf("%p\n", wolf); /* 포인터 변수 wolf 값 */
printf("%d\n", *wolf); /* wolf이 가리키고 있는 변수의
실제 값 */
}
결과>
102(f의 아스키값)
100
200
100
102
(위의 값(주소값)은 컴퓨터가 임의로 정하기 때문에 다를 수 있고, 더 복잡하다.)
위에도 말했듯이 포인터는(정확히 말하면 포인터 변수) 임의 변수의 주소를 가리키는 변수이고 이 포인터를 사용해서 간접적으로 변수의 값을 취하거나 변경시킬 수가 있다.
참고 자료
없음