반응형
/*
* made by so_sal
* http://sosal.tistory.com/
*/
#include<iostream>
using namespace std;
포인터란? :: 주소값을 직접 컨트롤 하기 위해서, 실제 어떤 주소값을 저장하는 변수입니다.
:: 주소값 수의 크기는 4byte입니다. 따라서 포인터의 크기도 4바이트입니다.
자료형에 따라서 포함하는 메모리 크기가 다릅니다.
따라서 포인터는 메모리의 처음만을 가르치고, 포인터 자체의 자료형에 따라서
메모리를 읽게 됩니다.
ex)
int형 포인터 :: int* pointer; 또는 int *pointer;
char형 포인터 :: char* pointr; 또는 char *pointer; (포인터의 위치는 관계없다)
변수명 앞에 &(reference)를 붙인다면, 그 변수의 처음 메모리 주소값을 반환합니다.
아래 그림을 미리 보시면, 포인터 pi 의 메모리는 4바이트로, 0012FF54부터 시작하는데,
pi의 주소값 &pi를 출력하면 아래 4번에서 보듯이 첫번째 메모리 주소값을 반환하게 됩니다.
밑에 int형 i의 주소값 &i 또한 마찬가지입니다.
int main(){
int i = 5;
int *pi; // == int* pi; 같음
pi = &i;
1번:: cout<<i<<endl; //= 5
2번:: cout<<&i<<endl;//0012FF60
3번:: cout<<pi<<endl;//0012FF60
4번:: cout<<&pi<<endl;//0012FF54
5번:: cout<<*pi<<endl; // 5
return 0;
}
1번 :: i의 값은 5
2번 :: & (reference)는 주소값을 의미합니다. 따라서 i의 주소값은 0012FF60
3번 :: pi는 i의 주소값을 가리키는 포인터입니다. 따라서 0012FF60
4번 :: pi라는 변수의 주소값은
0012FF54입니다.
5번 :: pi가 가리키고 있는 주소의 값은
5입니다.
'Programing > C- programing' 카테고리의 다른 글
C++ 배열에서 원하는 문자열 찾아서 고치기 바꾸기 (1) | 2009.10.15 |
---|---|
C++ 배열에서 원하는 크기 삭제 프로그램 코드 (1) | 2009.10.15 |
C++ class date 코드 (0) | 2009.10.15 |
C++ Class 생성자 소멸자 간단한 코드 (2) | 2009.10.13 |
C언어 String과, 관련함수 function (2) | 2009.09.29 |