Language/C
포인터(Pointer)
hahahia
2012. 2. 17. 11:11
포인터 : 주소값을 직접 컨트롤을 하기 위해, 실제 어떤 주소값을 저장하는 변수.
주소값의 크기는 4byte이며 따라서 포인터의 크기도 4byte.
example)
변수명 앞에 &를 붙이게 되면, 그 변수의 처음 메모리 주소값을 반환한다.
그렇게되면 배열을 하나(ex, char ch[10])를 선언하고 &ch를 출력하게되면 배열 ch의 첫번째 메모리 주소값인 ch[0]의 주소를 출력할 것이다.
주소값의 크기는 4byte이며 따라서 포인터의 크기도 4byte.
example)
int형 포인터 : int* p; or int *p; (*의 위치는 상관없다)
char형 포인터 : int *cp; or int* cp;
변수명 앞에 &를 붙이게 되면, 그 변수의 처음 메모리 주소값을 반환한다.
그렇게되면 배열을 하나(ex, char ch[10])를 선언하고 &ch를 출력하게되면 배열 ch의 첫번째 메모리 주소값인 ch[0]의 주소를 출력할 것이다.
int main(){
int i = 5;
int *pi; // == int* pi; equal
pi = &i;
no1:: cout<<i<<endl; //= 5
no2:: cout<<&i<<endl;//0012FF60
no3:: cout<<pi<<endl;//0012FF60
no4:: cout<<&pi<<endl;//0012FF54
no5:: cout<<*pi<<endl; // 5
return 0;
}
1번 :: i의 값은 5
2번 :: & (reference)는 주소값을 의미합니다. 따라서 i의 주소값은 0012FF60
3번 :: pi는 i의 주소값을 가리키는 포인터입니다. 따라서 0012FF60
4번 :: pi라는 변수의 주소값은
0012FF54입니다.
5번 :: pi가 가리키고 있는 주소의 값은
5입니다.