스택 : 함수가 변수 사용할 때 사용하는데
main위에 Test함수 쌓이고... main함수 안에 변수들 크기만큼 자리 차지하고
힙
데이터
ROM(코드영역 ==? 읽기전용 메모리 영역)
Read Only Momory
OS에 따라 조금 더 세분화 되기는 한다.
type : 정수타입
크기 : 1byte
bool에 갖다대면 true, false인데
char 캐릭터는 문자를 사용하는데 사용되는 자료형이다 보니까
같다대면
"숫자"에 대응되는 "문자"도 같이 보여준다! 누가? "인텔리 센스"가
아스키 코드? 또는
"문자 이미지"를 저장해놓은 "표"가 있다.
즉, 문자의 그림 형태를 메모리에 저장을 시켜놓고
특정 숫자가 보이면은 숫자에 매칭되는 표에있는 문자를 보여준다.
그래서 컴퓨터가 전부다 0, 1로 되어있는 이유가 뭐냐하면은
문서 워드 같은데 타자를 처서 "문자"를 보고있는데
"실제 문자"는 메모리 상에서
"a"라고 치면은 메모리 상에서 a는 2진수이고 97이 적혀있는 것이다.
그런데 이것을(== a)를 화면에 그리고 출력하는 과정에서
Visual Studio는 문자를 보여주어야 하는 Tool 이기 때문에
타이핑 되어있는 문자들을 보면 010101010 이런 숫자 데이터들이다.
0101010... 데이터들을 문자로써 해석하겠다! 라는 순간 그 숫자에 대응하는 문자로 전환해서 비쥬얼적으로 바꾸어서 우리눈에 보여지게 되면은 그게 우리가 작성한 문자가 그대로 보이는 것이다.
wchar_t == 2byte 문자형 자료형이다
wchar_t wc = 459;는
메모리상에 10101010 이런식으로 들어가 있는 것이고
wc = "459";는 '4'에 해당하는 아스키 코드값 52, 5에 해당하는 53, 9에 해당하는 57이 각각 들어가 있어서
이것을 해석 하니까 "459"이다.
3byte메모리 공간에 이렇게 우겨 넣기
NULL문자는 " " 공백이다.
공백은 데이터가 없는게 아니라 32라는 숫자가 (2진으로) 들어가 있음
우리가 spcae bar누르면 공백 생기는데 그 공백에 32라는 정수형이 들어가있음
"4 59" 하면 1바이트에 4에 해당하는 숫자 들어가고, 1바이트에 32들어가고, 1바이트에 5에 해당하는 숫자 들어가고, 1바이트에 9에 해당하는 숫자 들어감
툴에서는 32라는 숫자를 만나면 공백으로 보여주는 것 뿐이다.
null문자는 0이고 space = 32이다.
안에 들어있는 메모리 값은
52 32 53 59 0
이렇게 들어가 있어야된다.
그래야 0을 보고 null인식해서 문자열 "마감" 이라는 것을 알게되어서 끊음.