C++ Rookiss Part1 C++ 프로그래밍 입문 : 포인터 연산 복습
🙇♀️포인터 연산 복습
- 주소 연산자 (&)
- 산술 연산자
- 간접 연산자
- 간접 멤버 연산자
🪐포인터 연산
- 주소 연산자 (&)
int number = 1;
// 1) 주소 연산자 (&)
// - 해당 변수의 주소를 알려주세요
// - 더 정확히 말하면 해당 변수 타입(TYPE)에 따라서 TYPE* 반환
int* pointer = &number;
- 산술 연산자
number += 1; // 1증가
// int*
// - * : 포인터 타입! (8바이트) 주소를 담는 바구니!
// - int : 주소를 따라가면 int(4바이트 정수형 바구니)가 있다고 가정!
// [!] 포인터에서 +나 -등 산술 연산으로 1을 더하거나 뺴면,
// 정말 '그 숫자'를 더하고 뺴라는 것이 아님
// TYPE의 크기만큼 더하거나 뺴는 것! (char, int, float, double)
pointer += 1; // 4증가
- 간접 연산자
// - 포탈을 타고 해당 주소로 이동
number = 3;
*pointer = 3; // number = 3;과 동일
Player player;
player.hp = 100;
player.damage = 10;
Player* playerPtr = &player;
(*playerPtr).hp = 200; // player.hp = 200;과 동일
(*playerPtr).damage = 20; // player.damage = 20;과 동일
- 간접 멤버 연산자
playerPtr->hp = 200; // (*playerPtr).hp = 200;와 동일
playerPtr->damage = 200; // (*playerPtr).damage = 20;와 동일