반응형

char형의 사이즈는 1byte (8bit)

 

 

 

int형의 사이즈는 4byte (32bit)

 

 

 

double형의 사이즈는 8byte (64bit)

 

 

 

char c의 메모리주소를 10진수(1153871)와 16진수(affe2f)로 출력

 

 

 

char c1와 c2의 메모리주소 출력, 각 1byte의 공간을 사용

 

 

 

char형 변수의 메모리 주소에 1씩 더한 값을 출력, char형 변수이므로 1byte 다음 주소를 출력

 

 

 

int형 변수의 메모리 주소를 출력, 각 4byte의 공간을 사용

 

 

 

int형 변수의 메모리 주소에 1씩 더한 값을 출력, int형 변수이므로 4byte 다음 주소를 출력

 

 

 

char c를 선언하고 'A'로 초기화 상태에서 메모리 주소를 순차적으로 출력, char형이므로 주소가 1byte씩 증가

 

 

 

int n을 선언하고 값을 100으로 초기화 메모리 주소를 순차 출력, int형이므로 주소가 4byte씩 증가

 

 

 

char c를 int n에 대입하여 char(1byte)에서 int(4byte)로 묵시적 형변환

 

 

 

(int)를 사용하여 char(1byte)에서 int(4byte)로 명시적 형변환

 

 

 

char형 변수의 메모리 주소(1byte씩 증가), int형 자료형으로 변환된 메모리 주소(4byte씩 증가)의 증가 추이

 

 

char형 변수 c의 메모리 주소(&c)의 값(*)은 해당 변수 c의 값과 같음

 

 

 

int형 변수 n의 메모리 주소(%n)의 값(*)은 해당 변수 n의 값과 같음

 

 

 

int형 변수 n의 메모리 주소를 char형 자료형으로 변환하면 각 자리수별로 접근 가능

 

 

 

char형 변수 c의 메모리 주소를 int형 자료형으로 변환하면 주소공간 증가(1byte -> 4byte)로 빈 공간이 발생하여 쓰레기 값 출력

 

 

 

char형 변수 c에 '321'값으로 초기화한 뒤 해당 값을 출력하면 1byte에 해당하는 0x41만 출력

 

 

 

int형 변수 n에 '321'값으로 초기화한 뒤 해당 값을 출력하면 4byte이므로 해당 값 0x141을 모두 출력

 

 

 

int형 변수에서 char형으로 메모리 주소값에 접근하면 자리수별로 값을 초기화 가능

 

 

 

또한 ((char*)&n[0] 과 *(char*)&n 은 동일

 

 

 

반응형

 

 

1장 내용정리

- 메모리의 주소 1개는 1byte의 메모리 공간을 갖는다.

- 변수는 자료를 저장할 수 있는 메모리 공간의 이름이다.

- 변수의 자료형 크기에 따라 변수가 사용할 메모리 공간의 크기가 결정된다.

- 변수의 시작 주소는 '&' 연산자를 변수 앞에 붙여 사용한다.

- 변수의 시작 주소는 그 변수의 자료형의 주소를 의미한다.

- '*' 연산자를 주소 앞에 붙이면 메모리 이름을 사용할 수 있다.

 

 

char형 변수의 사이즈는 1byte, int/long/float는 4byte, double은 8byte, 메모리 주소의 사이즈는 모두 4byte

 

 

 

자료형의 사이즈 그리고 자료형별 메모리 주소의 사이즈

 

 

 

따라서 각 변수의 메모리 주소 값의 증가는 해당 변수의 자료형에 따름

 

 

 

int형 변수 n을 char형, shot형, int형으로 메모리 주소의 값을 출력한 결과

 

 

 

[참고] 프리렉 - 열혈강의 C포인터 (공동환 저)

반응형

'cs > c-pointer' 카테고리의 다른 글

[열혈강의] 03. 배열  (0) 2022.01.24
[열혈강의] 02. 포인터  (0) 2022.01.06

+ Recent posts