포인터(Pointer)

이정현·2022년 2월 17일
0

c++

목록 보기
1/1
post-thumbnail

1. 포인터란?

C++ 에서 사용되는 변수인데 일반적인 변수와는 조금 다르다.
int A = 3 , chr B = 'a' 처럼 자료형에 맞는 자료를 변수에 담는 것이 아니라 특정 변수의 주소값을 담는 변수이다.
(특정 변수의 메모리 공간을 가리키는 변수라고 이해했다.)


포인터를 학습하기 전에 미리 알아두면 좋을 것 같다.

주소연산자(The address-of operator) &

  • 해당 변수의 주소를 확인 할때 사용한다.

ex) int A = 8;
cout << &A
결과 : 0x16d6479ec

역참조연산자(dereference operator) *

  • 주소연산자와는 반대로 주소값으로 부터 실제 value를 확인할 때 사용한다.

ex) int A = 8;

cout << *&A << endl;

결과 : 8


2. 포인터의 선언

2-1 포인터 하나만 선언

int *ptr ;

일반적인 변수 선언과 비슷하지만 자료형과 변수 이름 사이에 (*) 이 들어간다

2-2 여러 포인터 변수를 동시에 선언

int *A , B; 라고 선언하면 A는 포인터변수, B는 일반 int형 변수가 된다.
따라서 여러개를 동시에 선언하려면 각각의 변수 명 앞에 별표시를 해야한다.

Ex) int (별)A , (별)B , (별)C;
부득이하게 한글로 표시 실제로는 *을 사용해야한다.

유의사항

포인터의 자료형은 포인터가 가리키는 변수의 자료형과 일치해야한다.
int A = 3;
float *ptr = &A; 해버리면 오류가 발생한다.

3. 포인터에 값 할당

일반적으로 &연산자를 사용하여 주소값을 할당해주며 리터럴 메모리주소를 직접 할당할 수는 없다.

OK
'''c++
int A = 8;
int * ptr = &A;
'''

BAD
'''c++
int * ptr = 0x16d6479ec;
'''

profile
열공(하려고 노력하는)중 ^__^

0개의 댓글