c++ 포인터 변수

FeelSoo·2022년 5월 25일
0
post-thumbnail
post-custom-banner

포인터 변수란? 변수의 주소를 저장하는 변수.

*--- 간접 참조 연산자 기호 : 포인터 변수에 들어있는 주소 내의 값을 가져옴

&--- 주소 연산자 기호 : 변수의 주소 접근 가능

위의 선언 내용을 파악해보면 a라는 변수의 값은 10이고 주소는 100이다. b는 *를 통해 선언된 포인터 변수다.

&를 사용해서 a의 주소 100을 담을 수 있다.

*를 통해 포인터 변수를 선언한 후에 &를 통해 주소를 담을 수 있다.



< 특징 >

  1. 포인터 변수의 데이터 타입과 참조하려는 변수의 데이터 타입은 일치하여야 한다.



2. 배열의 이름은 배열을 시작하는 주소를 저장한다.

위의 예시에서 array는 배열 시작 주소값을 담고 있다.


3. 배열의 이름을 포인터 변수처럼 사용할 수 있다.

4. 포인터 변수를 배열의 형식으로 사용할 수 있다.

5. 포인터 변수에 배열의 주소를 저장하여 배열의 원소를 출력 및 변경할 수 있다.

위의 예시에서 *p를 통해 포인터 변수를 선언하고 이를 array와 등호로 같게 만든 후 사용할 수 있음을 알 수 있다.

그리고 p[~] 형식으로 array의 인자에 접근가능함을 알 수 있다. ( 포인터 변수를 배열의 형식으로 사용 가능 )





< 포인터 변수와 같이 활용할 수 있는 연산자 예시 >


덧셈 뺄셈 연산자를 사용할 수 있다.

++, -- 라든지 +1, -1, +2, -2 등등

++이나 --를 하면 포인터 변수의 자료형의 단위 크기만큼 주소를 이동할 수 있다.

+2 혹은 -2는 단위 크기의 2배를 더하거나 혹은 빼는 것을 의미한다.

(*ptr++) // ptr이 담고 있는 변수 주소 안의 값을 ++
*(ptr++) // ptr이 담고 있는 변수 주소를 우선 ++하고 그 안의 값을 참조



첫번째 printf, 두번째 printf를 비교했을 때 각각 4byte, 8byte, 1byte씩 증가한 주소값이 출력됨을 확인할 수 있다.




prinf 사용시 자료형 크기 설정시 참고할 수 있는 표다.

profile
세상은 넓고 배울건 많다
post-custom-banner

0개의 댓글