🙇‍♀️포인터 연산 복습

  1. 주소 연산자 (&)
  2. 산술 연산자
  3. 간접 연산자
  4. 간접 멤버 연산자


🪐포인터 연산


  1. 주소 연산자 (&)
int number = 1;

// 1) 주소 연산자 (&)
// - 해당 변수의 주소를 알려주세요
// - 더 정확히 말하면 해당 변수 타입(TYPE)에 따라서 TYPE* 반환
int* pointer = &number;


  1. 산술 연산자
number += 1; // 1증가

// int*
// - * : 포인터 타입! (8바이트) 주소를 담는 바구니!
// - int : 주소를 따라가면 int(4바이트 정수형 바구니)가 있다고 가정!

// [!] 포인터에서 +나 -등 산술 연산으로 1을 더하거나 뺴면,
// 정말 '그 숫자'를 더하고 뺴라는 것이 아님
// TYPE의 크기만큼 더하거나 뺴는 것! (char, int, float, double)

pointer += 1; // 4증가


  1. 간접 연산자
// - 포탈을 타고 해당 주소로 이동

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;과 동일


  1. 간접 멤버 연산자
playerPtr->hp = 200; // (*playerPtr).hp = 200;와 동일
playerPtr->damage = 200; // (*playerPtr).damage = 20;와 동일

태그:

카테고리:

업데이트: