프로그래밍/C++

#29. 포인터 연산

코딩하는상후니 2022. 7. 19. 22:01
 

 

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