CPP_어소_34_문자

CJB_ny·2022년 6월 22일
0

CPP_AROTHO

목록 보기
32/83
post-thumbnail

메모리 영역

  • 스택 : 함수가 변수 사용할 때 사용하는데

    main위에 Test함수 쌓이고... main함수 안에 변수들 크기만큼 자리 차지하고

  • 데이터

  • ROM(코드영역 ==? 읽기전용 메모리 영역)

    Read Only Momory

OS에 따라 조금 더 세분화 되기는 한다.

char

type : 정수타입

크기 : 1byte

bool : 1byte

bool에 갖다대면 true, false인데

char 캐릭터는 문자를 사용하는데 사용되는 자료형이다 보니까

같다대면

"숫자"에 대응되는 "문자"도 같이 보여준다! 누가? "인텔리 센스"가

=> 아스키 코드에 대응되는 10진수 -> 문자 또는 문자 -> 숫자

컴퓨터에서 문자란?

아스키 코드? 또는

"문자 이미지"를 저장해놓은 "표"가 있다.

즉, 문자의 그림 형태를 메모리에 저장을 시켜놓고

특정 숫자가 보이면은 숫자에 매칭되는 표에있는 문자를 보여준다.

0, 1

그래서 컴퓨터가 전부다 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메모리 공간에 이렇게 우겨 넣기

SP

NULL문자는 " " 공백이다.

공백은 데이터가 없는게 아니라 32라는 숫자가 (2진으로) 들어가 있음

우리가 spcae bar누르면 공백 생기는데 그 공백에 32라는 정수형이 들어가있음

"4 59" 하면 1바이트에 4에 해당하는 숫자 들어가고, 1바이트에 32들어가고, 1바이트에 5에 해당하는 숫자 들어가고, 1바이트에 9에 해당하는 숫자 들어감

툴에서는 32라는 숫자를 만나면 공백으로 보여주는 것 뿐이다.

null문자는 0이고 space = 32이다.

4 59

안에 들어있는 메모리 값은

52 32 53 59 0

이렇게 들어가 있어야된다.

그래야 0을 보고 null인식해서 문자열 "마감" 이라는 것을 알게되어서 끊음.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글