책 내용 질문하기
1권 164페이지 48번 질문있습니다.
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
164
조회수
236
작성일
2020-04-21
작성자
탈퇴*원
첨부파일

1권 164페이지 48번 질문있습니다.

48번에서 궁금한점은 코드를 보면 push함수의 매개변수인 i는 int형으로 선언되어있는데 main함수안에 push함추호출 인자를 보면 'A' 처럼 문자형인데, 즉 자료형이 다른데 어떻게 호출이 가능한지 궁금합니다

답변
2020-04-21 19:26:14

안녕하세요 길벗수험서 운영팀입니다.

 

문자 한 글자를 의미하는 char 자료형은 'a' 또는 'A' 이런식으로 저장한다고 표현하지만,

실제로는 해당 문자가 저장되는 것이 아닌 해당 문자의 아스키 코드가 저장됩니다.

 

때문에 char a = 'A'를 선언한뒤

printf("%d", a) 이렇게 출력하면 문자 'A'의 아스키 코드 값인 65가 출력됩니다.

( printf("%d", 'A') 도 동일합니다.)

 

해당 문제는 이렇게 한 글자의 문자를 처리할 때는 실제 문자가 아닌 숫자가 전달된다는 것을 기반으로 인수로 'A'를 전달하고 받을 때는 'A'의 아스키 코드인 65가 변수 i에 저장되도록 만듭니다. 출력시에만 %d가 아닌 %c로 출력하여 65가 아닌 'A'가 출력되도록 만든 것이죠.

 

int a= 65;

char b='A';

printf("%c", a);  - 'A' 출력

printf("%d", a); - 65 출력

printf("%c", b);  - 'A' 출력(위와 동일)

printf("%d", b); - 65 출력(위와 동일)

 

행복한 하루되세요 :)

  • 관리자
    2020-04-21 19:26:14

    안녕하세요 길벗수험서 운영팀입니다.

     

    문자 한 글자를 의미하는 char 자료형은 'a' 또는 'A' 이런식으로 저장한다고 표현하지만,

    실제로는 해당 문자가 저장되는 것이 아닌 해당 문자의 아스키 코드가 저장됩니다.

     

    때문에 char a = 'A'를 선언한뒤

    printf("%d", a) 이렇게 출력하면 문자 'A'의 아스키 코드 값인 65가 출력됩니다.

    ( printf("%d", 'A') 도 동일합니다.)

     

    해당 문제는 이렇게 한 글자의 문자를 처리할 때는 실제 문자가 아닌 숫자가 전달된다는 것을 기반으로 인수로 'A'를 전달하고 받을 때는 'A'의 아스키 코드인 65가 변수 i에 저장되도록 만듭니다. 출력시에만 %d가 아닌 %c로 출력하여 65가 아닌 'A'가 출력되도록 만든 것이죠.

     

    int a= 65;

    char b='A';

    printf("%c", a);  - 'A' 출력

    printf("%d", a); - 65 출력

    printf("%c", b);  - 'A' 출력(위와 동일)

    printf("%d", b); - 65 출력(위와 동일)

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.