티스토리 뷰

C++

20160512_포인터

cho22 2016. 5. 17. 00:16
반응형

1. 포인터란 무엇인가

포인터는 주소값을 저장하기 위해 사용하는 변수이다.


2. 포인터 사용방법

- *를 붙이면 포인터를 나타낸다.

int *pA; // int 형 포인터 pA


- 포인터는 주소값을 담는 변수이므로 '&변수명'을 이용해 값을 넣을 수 있다. 

int a;

int *pA = &a;


- 포인터에 담긴 주소에 있는 값을 출력하려면 *을 이용한다. 

int a = 3;

int *pA = &a;

cout << a << endl;        // 3

cout << pA << endl;        // a의 주소 출력 ex. 0x00003fef

cout << *pA << endl;        // a의 주소에 있는 값 출력 3


3. 포인터 특징

- 포인터는 주소를 담는 변수이다. 

- 포인터는 주소를 담기 때문에 포인터의 크기는 주소길이를 담을 크기인 4byte이다.

- 배열의 이름은 그 배열의 0번째 인덱스를 가리키는 포인터이다. 

- 포인터의 형태가 존재하는 이유는 몇 바이트씩 이동해야 하는 가를 정하기 위함이다. 아래의 예를 실행해보면 알 수 있다. 

int * ptr1 = 0;

char * ptr2 = 0;

double * ptr3 = 0;


printf( "%d 번지, %d 번지, %d 번지 \n", ptr1++, ptr2++, ptr3++ );// 0,0,0

printf( "%d 번지, %d 번지, %d 번지 \n", ptr1++, ptr2++, ptr3++ );//4,1,8

printf( "%d 번지, %d 번지, %d 번지 \n", ptr1++, ptr2++, ptr3++ );//8,2,16

printf( "%d 번지, %d 번지, %d 번지 \n", ptr1++, ptr2++, ptr3++ );//12,3,24

printf( "%d 번지, %d 번지, %d 번지 \n", ptr1++, ptr2++, ptr3++ );//16,4,32



반응형

'C++' 카테고리의 다른 글

20160516_콘솔 전투게임 만들기  (0) 2016.05.19
20160513_포인터와 함수  (0) 2016.05.17
20160511_빙고게임만들기  (3) 2016.05.12
20160510_함수  (0) 2016.05.12
20160504_문자열  (0) 2016.05.06
댓글