Notice
Recent Posts
Recent Comments
Link
오븐 노트
[C++] 포인터 연산 본문
#include <iostream>
using namespace std;
// 1) 주소 연산자 (&)
// 2) 산술 연산자 (+ -)
// 3) 간접 연산자 (*)
// 4) 간접 멤버 연산자
struct Player
{
int hp; // 주소값 + 0
int damage; // 주소값 + 4
};
int main()
{
int number = 1;
// 1) 주소 연산자 (&)
// - 해당 변수의 주소를 알려달라
// - 더 정확히 말하면 해당 변수 타입(TYPE)에 따라서 TYPE* 반환
int* pointer = &number;
// 2) 산술 연산자 (+ -)
number += 1; // 1 증가
// 포인터에서 +나 -등 산술 연산으로 1을 더하거나 빼면,
// 한번에 TYPE 만큼의 주소를 입력한 숫자 만큼 이동하라는 명령
// 64비트 운영체제 기준 8 * number
pointer += 1; // 4 증가
// 3) 간접 연산자 (*)
number = 3; // number의 값을 3으로 저장하라
*pointer = 3; // 포인터 변수에 저장되어 있는 주소값으로 이동하여 3을 저장하라
// 4) 간접 멤버 연산자 (->)
// * 간접 연산자 (해당 주소로 이동)
// . 구조체의 특정 멤버를 다룰 때 사용 (어셈블리 언어로 열어보면 .은 사실상 단순한 덧셈)
// ->는 *와 .를 한번에 처리하는 연산자
Player player;
player.hp = 100;
player.damage = 10;
Player* playerPtr = &player;
(*playerPtr).hp = 200;
(*playerPtr).damage = 200;
// 위 아래 완전히 같은 의미, 동작, 연산
playerPtr->hp = 200;
playerPtr->damage = 200;
return 0;
}
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
C++ 카테고리의 글은 인프런 Rookiss님의 강의를 공부하며 정리하는 내용입니다.
이미 알고 있는 내용도 다시 정리 되어있을 수 있습니다.
모든 글은 제가 공부하기 위해 작성합니다.
'Develop > C++' 카테고리의 다른 글
[C++] 참조 기초 (0) | 2022.07.10 |
---|---|
[C++] 포인터 실습 (0) | 2022.07.05 |
[C++] 포인터 기초 #2 (0) | 2022.07.01 |
[C++] 포인터 기초 #1 (0) | 2022.06.30 |
[C++] TextRPG #2 (구조체) (0) | 2022.06.28 |