2014-10-06 4 views
-4
char c; 
c = '2'; 
printf("%d\n",c); 

이 질문은 내 퀴즈에서 나온 것이므로 무엇이 화면이냐고 묻습니다. 대답은 50이고, 프로그램을 사용하여 시도했지만, 왜 그것이 50입니까? 2가 아니야?아포스트로피 in char 데이터 형식

+1

시스템 (현재 대부분의 시스템처럼)은 [ASCII 문자 세트] (http://www.ascii-code.com/)를 사용하고있는 것 같습니다. 링크를 확인하면 '2'== 50 '인 이유를 이해할 수 있습니다. –

+2

또한 앞으로 더 나은 제목을 제안 해보십시오. 질문은 아포 스트로피와 관련이 없습니다. –

답변

4

아포스트로피는 "리터럴 문자"를 의미하는 것입니다 이 숫자를 나타내는 데 사용되는 글리프 2.

printf()에 "부호있는 정수"를 의미하므로 문자의 정수 값을 가져올 수 있습니다 (보통 "코드 포인트"라고도 함). 또는 고전적으로 , "ASCII 값"입니다).

나는 코드가 charunsigned 될 수 있으므로 int 무엇 %d 예상하는 때문에, 당신은 명확하게하기 위해 호출 (int)으로 캐스팅해야 100 % 깨끗하지라고 생각합니다.

3

당신은 int '%d' 같은 char '2'를 인쇄, 그래서 인쇄됩니다 무엇, 즉 '2'은 즉, 정수 2, 대신 문자이 아닌, 그 ASCII value