5. 다시 한 번 포인터에 대해 정리
포인터에 대해 다시한번 정리를 해 보죠.
우선 포인터는 변수이고, 변수 중에서도 주소를 기억시키는 변수 입니다.
포인터 선언은
데이터형태* 포인터명;
이렇게 해 주면 되고, 여기서 데이터형태는 그 포인터가 어떤 형태의 변수의 주소를 넣는 것인지를 지정하는 것이었죠?
다음으로 포인터 연산자에는 주소 연산자(&)와, 참조 연산자(*)가 있는데,
주소 연산자는 어떤 변수의 실제 주소를 얻고자 할때 사용하는 것으로 주소를 얻고자 하는 변수 앞에 붙여 주기만 하면 되고요.
참조 연산자는 포인터에 저장되어 있는 주소에 기억되어 있는 데이터를 변경시키거나 사용할때 쓰는 것으로, 포인터의 앞에 붙여 주기만 하면 됩니다.
예를 들어
int Variable;
int* Pointer;
이렇게 변수 두개가 있을때,
Pointer=&Variable;
이렇게 하면 Pointer라는 포인터에는 Variable라는 변수의
주소가 들어가고
*Pointer=10;
이렇게 하면 Pointer에 들어있는 주소 즉 Variable의 주소에 들어있는 값이 변경되므로 결국은 Variable가 변경되어 10이 들어가게 되죠.
마지막으로 포인터에 초기값을 줄때는 일반 변수와 똑같으나 주소는 마음데로 정하는 것이 아니므로 일반적으로 일단 변수를 선언하고 포인터에는 그 변수의 주소를 초기값으로 줍니다.
예를 들어
int Variable;
int* Pointer=&Variable;
이런 식으로.
그럼 예제를 하나 보죠.
/* 파일 이름 : C9-1.C프로그램 내용 : 포인터 예제. */
#include <stdio.h>
void main(){
int Var1, Var2;
int *pVar=&Var1;
*pVar=10;
printf("%d\n",Var1);
Var2=*pVar;
printf("%d\n",Var2);
pVar=&Var2;
*pVar=5;
printf("%d\n",Var2);
}
한번 잘 분석해 보세요. 어떤 결과가 나올까요?
결과는
C:\>C9-1.EXE
10
10
5
C:\>
이렇게 나옴니다. 이유는 잘 분석해 보시면 알게 됩니다.
'공부하자 > C언어' 카테고리의 다른 글
C언어 문법 공부 8장 [포인터 사용 용도] (0) | 2016.11.20 |
---|---|
C언어 문법 공부 8장 [포인터의 배열] (0) | 2016.11.20 |
C언어 문법 공부 8장 [포인터에 초기값 설정] (0) | 2016.11.20 |
C언어 문법 공부 8장 [포인터 연산자] (0) | 2016.11.20 |
C언어 문법 공부 8장 [포인터는 어떻게 선언하는가] (0) | 2016.11.20 |