강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

chldpfflxm4218 のプロフィール画像
chldpfflxm4218

投稿した質問数

C++とUnrealで作るMMORPGゲーム開発シリーズ Part1: C++プログラミング入門

変数とレジスタ

메모리 주소값 더하는게 이해가 안되요 ㅠㅠ

作成

·

446

0

주소값이라는 개념은 이해가 됬는데요

강의 변수와 레지스터 15분쯤 보면

1바이트를 더했는데 왜

0x403010에서 0x403011로 된건지 잘모르겠네요..

저기 뒤에 숫자 1은 바이트가 아니라 1을 더한거아닌가요?

 

 

c++

回答 2

2

Rookiss님의 프로필 이미지
Rookiss
インストラクター

네 주소값도 정수이고, 이 정수에다가 '1'을 더했다고 이해하시면 됩니다.
(바이트가 어느 시점에서 나왔는지는 모르겠지만, 무시하시면 됩니다)

0

옛날에 학부 때 그 부분이 저도 좀 헷갈렸는데요

요약하자면 논리적인 주소의 값은 1증가 한 게 맞으나 실제 물리적인 메모리의 공간은 1바이트가 증가한 거여서 1바이트를 더했다고 표현하는 겁니다

좀 더 구체적으로는
일단 대부분의 컴퓨터 시스템이
"바이트 주소 지정" 방식을 사용합니다

쉽게 말해서 컴퓨터 메모리에 있는 모든 1바이트 공간마다 고유한 주소 번호를 하나씩 붙여 놓는 건데요

메모리를 아주 긴 아파트 복도라고 상상했을 때
각각의 방(메모리 공간)은 1바이트 크기를 가집니당
그리고 각 방마다 0x01, 0x02, 0x03...
같은 식으로 주소 번호가 붙어 있고요

따라서 주소 값이 1증가 했다는 것은
바로 옆방으로 한 칸 이동했다는 뜻이고,
이는 메모리 상에서 물리적인 공간을 1바이트 만큼 이동했다는 뜻 입니다

+
본 주제와는 무관하지만 같이 알아두면 좋은 개념이어서 추가로 적자면
논리적인 메모리 주소를 담는 공간은
64비트 시스템 기준에서는 8바이트 입니다
이것은 나중에 "포인터의 크기" 개념에서 다루는 내용입니다

chldpfflxm4218 のプロフィール画像
chldpfflxm4218

投稿した質問数

質問する