윤성우의 열혈 C 프로그래밍 Chapter 5 상수와 기본 자료형

권민정·2022년 3월 9일
0

05-1 기본 자료형

  • 자료형: 데이터를 표현하는 기준(데이터의 용도와 크기를 결정)
  1. 정수형

    • char: 1바이트
    • short: 2바이트
    • int: 4바이트
    • long: 4바이트
    • long long: 8바이트
  2. 실수형

    • float: 4바이트
    • double: 4바이트
    • long double: 8바이트 이상

※ 유의점
double형 데이터 출력 시 서식문자 %f 사용, 입력 받을 시 %lf 사용

→ 메모리 공간을 적절하게 사용하기 위해 적합한 자료형을 고르자.
보편적으로 정수형은 int, 실수형은 double을 사용한다.

  1. 연산자 sizeof

    int (변수) = sizeof(변수/상수/자료형 이름);
    → 자료형의 크기를 확인할 수 있음

  2. unsigned 와 signed

  • 정수 자료형 이름에 한해 unsigned 선언을 추가하면 0 이상의 값만 표현하는 자료형이 됨. → 표현 가능한 값의 범위가 양의 방향으로 두 배 넓어짐 (∵ MSB 조차 값의 크기를 나타내는 비트로 사용)

  • signed int == int 처럼 signed는 의미가 변하는 키워드가 아니기 때문에 생략

    char형은 예외 ∵ char를 unsigned char로 처리하는 컴파일러도 존재

05-2 문자 자료형

  1. 아스키 코드(ASCII): 알파벳 및 일부 특수문자와 숫자를 연결(mapping)

    정수는 출력 방법에 따라 문자의 형태로도, 숫자의 형태로도 출력 가능

  2. %c : 문자형 데이터를 나타내는 서식문자
  3. 문자를 저장할 때는 char형 변수를 보편적으로 사용

05-3 상수

상수: 변경이 불가능한 데이터
리터럴(리터럴 상수): 변수와 달리 이름이 없는 상수
심볼릭 상수: 이름이 있는 상수 → const 키워드를 사용 (const 사용 시 선언과 초기화 분리 불가)

ex) const int MAX = 100; // 상수 이름은 모두 대문자로 표시하는 것이 관례

접미사: 상수를 다양한 자료형으로 표현하도록 도와줌.

정수형: U(unsigned int) / L(long) / UL(unsigned long) / LL(long long) / ULL(unsigned long long)
실수형: F(float) / L(long double)

05-4 자료형의 변환

  1. 자동 형 변환
  • 대입 연산자의 두 피연산자 자료형 불일치 시 오른쪽 피연산자 자동 형 변환
    ※ 유의점
    - 정수를 실수로 형 변환하는 경우: 손실 X 오차 O
    - 실수를 정수로 형 변환하는 경우: 소수부의 손실
    - 바이트 크기가 큰 정수를 바이트 크기가 작은 정수로 형 변환하는 경우: 상위 바이트의 손실
  • 정수의 승격: int보다 작은 크기의 정수형 데이터는 int형 데이터로 변환돼 연산이 진행됨
  • 피연산자의 자료형 불일치 시 자동 형 변환

    형 변환의 우선순위는 정수 자료형보다 실수 자료형이 무조건 앞섬

  1. 강제 형 변환
  • 형 변환 연산자: 강제 형 변환을 일으키는 소괄호 연산자

    연산 결과의 자료형은 피연산자의 자료형과 일치
    ex)
    int num1=3, num2=4;
    double divResult;
    divResult = num1/num2;
    printf("%f", divResult);
    → 출력 값: 0.00000

    → 예시의 3행을 divResult = (double)num1/num2; 으로 바꿔준다면 옳은 값이 나옴

0개의 댓글