'A' 바이트 개수 질문

조회수 531회
#define _CRT_SECURE_NO_WARNINGS  
#include <stdio.h>


int main()
{
    int size;


    int num1 = 10;
    double num2 = 0X18;
    long double num3 = 17.1e-3;
    double num4 = 3.14;
    char num5 = 'A';
    double num6 = 3.14F;



    printf("literal의 저장 공간 크기\n(1) 10: %d Byte \n(2) 0X18: %d  Byte \n(3) 17.1e-3: %d  Byte \n(4) 3.14: %d  Byte \n(5) 'A': %d  Byte \n(6) 3.14F: %d  Byte \n", sizeof(10), sizeof(0X18), sizeof(17.1e-3), sizeof(3.14), sizeof('A'), sizeof(3.14F));




    return 0;
}

visual c++에서 sizeof(char)sizeof('A') 결과가 달라서 문자형 상수 ‘A'는 int형이라 크기가 4바이트로 출력 되어야 하는거 아닌가요? 위 비주얼 스튜디오 2019에서 코드대로 출력하면 'A'가 1바이트로 출력 되는데 어디가 문제인가요?

1 답변

  • c 와 c++ 는 다른언어입니다. 두 언어간의 차이점중 하나입니다.

    c++ 에서 'A' 는 c 와 달리 char 입니다.

    • 답변감사합니다. 확인하고나니 소스의 확장자를 cpp에서 c로 바꾸고나니 정상적으로 출력되네요. cpp로 아면 c++언어고, c로 하면c언어라 이런 현상이 발생하는 건가요? 알 수 없는 사용자 2021.3.12 15:24
    • 현상이라기보다 차이점이죠 그렇게 정해진겁니다. c와 c++은 서로 별개의 언어이며 환경입니다. 문법이 똑같다하여 모든 속성이 똑같지는 않습니다. 정영훈 2021.3.13 00:34

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)