Memory View

연속 저장, 주소, 멤버 접근을 메모리 관점으로 묶는다

배열과 문자열은 연속된 칸, 포인터는 주소, 구조체와 공용체는 여러 값을 묶는 방법으로 구분하면 코드 해석이 안정된다.

array

배열

같은 자료형을 연속 저장하고 인덱스는 0부터 시작한다. 범위를 벗어난 접근은 예측하기 어렵다.

string

문자열

문자열은 char 배열이며 마지막에 '\0'이 있어야 끝을 알 수 있다.

pointer

포인터

&x는 주소, *p는 그 주소의 값이다. 선언과 사용 위치의 의미를 분리한다.

struct

구조체

서로 다른 자료형을 한 이름으로 묶는다. 변수는 ., 포인터는 ->로 멤버에 접근한다.

union

공용체

모든 멤버가 같은 메모리 공간을 공유한다. 가장 마지막에 저장한 값의 해석이 특히 중요하다.