강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

hantngud4247 のプロフィール画像
hantngud4247

投稿した質問数

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

変数とレジスタ

데이터 크기 질문

作成

·

289

0

강의 15분 쯤 내용에서 질문 있습니다.

변수 a의 주소에서 1바이트 더한 위치에 b의 주소가 있을거라고 하시면서 a 주소에다가 1을 더하셨는데, 1만 저하면 1bit가 더해진 거 아닌가요? 1바이트를 더하는건데 왜 1만 더하는건지 이해가 안됩니다 ㅠㅠ

C++

回答 2

2

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

주소의 최소 단위는 바이트입니다. 따라서 1을 더하면 1바이트가 더해지는 것이고,
그 이하 단위로는 내려갈 수 없습니다.

0

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

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

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

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

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

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

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


hantngud4247 のプロフィール画像
hantngud4247

投稿した質問数

質問する