문자를 치면 문자에 해당하는 아스키 코드 숫자를 비트에 넣는다.
숫자를 넣는다면?
char a=64;
숫자 64,즉 비트들에 64가 박히고 그 비트 해당하는 아스키 코드의 문자를 a에 대입
char =‘문자’ 멀티바이트, 조건부에 따른 1바이트 또는 2바이트
wchar_t=L”문자” 유니코드(와이드 바이트 ) 무조건 2바이트 씩
wchar_t wchar[10]=L”abcdef”;
// 읽기 전용 메모리(ROM) 적힌 코드를 복사해서 2바이트씩 10개 wchar[1]=L”a”; //문제 없음
(2바이트 하나에 하나의 문자, 문자열이기 때문 5~9인덱스까지는 비워있으니까 0으로 채워짐, 10번 인덱스에는 문자열이 끝났다는 표시의 숫자0이 들어감)
읽기전용 메모리의 코드를 복사해서 스택 영역에 만들었기 때문,원본 훼손 x
const wchar_t* pchar= L”abcdef”;
//pchar[1]=L”c”; 불가능
//*(pcar+1)=L”c”; 불가능
이유: 문자열 자체가 코드 영역에 쓰여있기 때문, 문자열 자체의 반환타입이 const char*이기 때문에 원본 참조는 불가!-> 프로그램 실행 중 코드를 변경하는 것과도 같음, 런타임 에러