char arr[2];arr[0] = 2; // char 타입 배열에 정수 2를 넣었는데 문제가 없는 이유...
어제 이 질문을 올리니 값을 할당하는 과정에서 2가 캐스팅 되어 저장되기에 에러가 아니라는 답을 받았습니다.
헌데 printf로 값을 확인하려하니 %c 로 하면 에러가 납니다..
%d 로 해야 출력이 되는데.. 뭘까요??
어제 이 질문을 올리니 값을 할당하는 과정에서 2가 캐스팅 되어 저장되기에 에러가 아니라는 답을 받았습니다.
헌데 printf로 값을 확인하려하니 %c 로 하면 에러가 납니다..
%d 로 해야 출력이 되는데.. 뭘까요??
코드를올려보삼
#include <stdio.h>
int main(void) {
아스키 저장될때 원래 정수로 저장되요
int arr[2];
'a' == 65 랑같은거임
arr[0] = 2; printf("%c\n", arr[0]); return 0; }
아스키 2 가 모니터로 표현되는 문자가아님
아 그러면 캐스팅 되는게 아니라 char 타입의 배열이라도 실제 값이 저장될 땐 문자가 아스키로 저장된다는 말씀이신거죠?
MSDN 켜라~!
char은 그냥 정수형 자료형이고 %가 정수에 맞는 아스키코드를 출력해주는 거라고
char 타입이라고 하니까 문자로 생각하기 쉬운데, byte 타입이라고 생각하면 된다. 원래 문자를 넣는 자료형은 없어. 문자로 표현가능한 자료형이 있는거고, 그걸 잘 결합해서 클래스화 시킨게 string 타입이고.