1. 주소 연산자 ( & )
=> 해당 변수의 주소를 달라.
int number = 1;
int* ptr = &number;
2. 산술 연산자 ( +, - )
* : 포인터타입, (8바이트)
int : 주소를 따라가면 int(4바이트 정수형 바구니) 가 있다고 가정!!
+= 1 : 다음 int(4바이트 정수형 바구니) 로 이동시켜줘!!
=> pointer += 1;
=> 포인터 연산 시, pointer 가 가리크는 주소값이 '포인터TYPE 크기' 만큼 한번 이동함.
=> short 면 2바이트, long long 이면 8바이트, int 면 4바이트 이동 (배열과 유사.)
=> 포인터를 담는 변수크기 와는 무관
3. 간접 연산자
=> 포털을 타고 이동한다 생각해보자.
number = 3;
*pointer = 3;
4. 간접 멤버 연산자
(->)
( * ) => 간접 연산자 ( 포탈 타고 해당 주소로 GOGO )
( . ) => 구조체의 특정 멤버를 다룰 때 사용 ( 어셈블리 언어로 보면 그냥 덧셈. )
Player player;
player.hp = 100;
player.Damage = 10;
Player* playerPtr = &player;
(*playerPtr).hp = 40;
(*playerPtr).Damage = 30;
playerPtr->hp = 50;
playerPtr->Damage = 20;
본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.
'프로그래밍 > C++' 카테고리의 다른 글
#31. 참조 & 포인터 (0) | 2022.07.19 |
---|---|
#30. 참조 기초 (0) | 2022.07.19 |
#28. 포인터 기초 (0) | 2022.07.19 |
#27. 함수 기타 내용 (0) | 2022.07.18 |
#26. 호출 스택 (0) | 2022.07.18 |