티스토리 뷰

LANGUAGE/C++

[C++] POINTER - 포인터

진심스테이크 2018. 3. 5. 15:18

 

주소값 표현 방법

1. &변수
2. 배열명
3. 함수명
4. 문자열
5. 포인터

 

 


 

포인터 : 크기는 4byte로, 주소를 저장하는 변수 -> 간접 변수

pointer = point (address) + er -> 지시자

 

 

기본 형식

가르키는 타입 * 변수명;

 

 

기능

1. 오직 주소만 받을 수 있다

2. 받은 주소의 값을 알 수 있다

3. 받은 주소의 값을 변경할 수 있다

4. 주소를 사용할 수 있다

5. 1:1 방식 -> 동시에 여러개를 잡지를 못한다

 

포인터 법칙

1. 첨자와 갯수가 같으면 값, 다르면 주소이다

2. 주소도 차원이 있다

- 1개가 부족하면 1차원, 2개가 부족하면 2차원, 3개가 부족하면 3차원

3. 1차원 주소자에 +1을 하면, 한 요소의 사이즈 (하나의 변수)

   2차원 주소자에 +1을 하면, 한 행의 사이즈

   3차원 주소자에 +1을 하면, 한 면의 사이즈

4. '*'와 '[ ]'를 바꿔서 표현 할 수 있다

   - 모양이 바뀌어도 원래의 의미는 바뀌지 않는다

   ex) a[ ][ ] = **a;

       

#포인터는 자주 움직이지 않는게 좋다

 

//ArrayList

휘발성 포인터 : 커서

고정 포인터 : 헤드

 

 

포인터 표현방법

A aa;

A *p;

p = &a; 일때,

p->a = 10;

(*p).a = 10;

 

동적 바인딩 : 부모가 자식을 접근하는것 - 다형성

- 부모가 알고 있는것만 사용 가능 -> 자식이 생성한것은 사용 불가(알 수 없음)

 

 


 

Ex)

int a;

a

 

 

 

 

 

int *p; // 포인터 p가 가르키는 값

*p

 

 

 

 

 

p = &a; 이면,

*p는 a의 주소값을 가리킨다

//&p -> 포인터 자신의 주소

 

*p = 300; //a는 300으로 출력이 된다

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

[C++] POINTER ARRAY - 포인터 배열  (1) 2018.03.06
[C++] DYNAMIC MEMORY - 동적 메모리  (0) 2018.03.06
[C++] REFERENCE  (0) 2018.03.05
[C++] CALL BY  (0) 2018.03.05
[C++] ARRAY - 배열  (0) 2018.03.05
댓글