본문 바로가기

개발중/c

데이터 형(Data Type)

728x90
반응형

자료형(Data Type)

  • 저장하는 데이터의 크기에 따라 필요한 메모리 공간의 크기가 다름
  • 데이터 종류에 따라 변수의 종류를 다르게 하는 것이 효율적임

 

 

적절한 자료형 사용

  • 메모리 절약
  • 실행 속도 향상

 

 

종류

  • 정수형(integer type)
  • 부동 소수점형(floating-point type)
  • 문자형(character type)

 

자료형

  • short, int, long: 정수형 데이터(100)
  • double, float : 실수형 데이터(3.141592)
  • char : 문자형 데이터(‘A’, ‘a’, ‘한’)

 

 

자료형의 크기

  • sizeof() 연산자
sizeof(x) // 변수
sizeof(10) // 값
sizeof(int) // 자료형

 

 

 

정수형

  • 가장 기본적인 데이터 타입

 

 

정수형의 종류

  • short
  • int
  • long
  • long long

 

 

정수 출력 형식지정자

printf( "%d" , 5 ) ;
int inData = 5 ;
printf( "%d \n" , inData) ;
printf( "%5d \n" , inData) ;
printf( "%5.2d \n" , inData) ;

 

 

실수 표현 방법

고정 소수점(Fixed Point) 방식

  • 소수점 위치를 고정시키고 정수부와 소수부를 나누어 표현

 

 

부동 소수점(Floating Point) 방식

  • 컴퓨터에서 실수는 부동소수점형으로 표현
  • 소수점이 떠서 움직인다는 의미
  • 과학자들이 많이 사용하는 과학적 표기법과 유사

 

 

실수 출력 형식지정자

형식

  • 기본 형식 지정자 %f
  • 기본: 소수점 6자리까지만 출력
printf( "%f" , 0.123456789 ) ;

 

 

오버플로우(Overflow)

  • 변수가 나타낼 수 있는 범위를 넘는 숫자를 저장하려고 할 때 발생
#include <stdio.h>
int main(void) {
float x = 1e39;
printf("x = %e\n",x);
return 0 ;
} 

 

 

 

언더플로우(Underflow)

  • 부동 소수점 수가 너무 작아서 표현하기 힘든 상황
#include <stdio.h>
int main(void) {
    float x = 1.23456e-38;
    float y = 1.23456e-46;
    doube z = 1.23456e-46; 
    printf("x = %e\n",x);
    printf("y = %e\n",y);
    printf("z = %e\n",z);
    return 0 ;
} 

 

 

문자형

아스키코드

  • 문자는 컴퓨터보다는 인간에게 중요
  • 문자도 숫자를 이용하여 표현
  • 공통적인 규격이 필요
  • 아스키 코드(ASCII: American Standard Code for Information Interchange)

 

 

문자 변수와 문자 상수

char형의 변수가 문자 저장

/* 문자 변수와 문자 상수*/
#include <stdio.h>
int main(void) {
    char code1 = 'A';
    char code2 = 65;
    printf("문자 상수 초기화 = %c \n", code1);
    printf("아스키 코드 초기화 = %c \n", code2);
    return 0 ;
}

 

 

정수형으로서의 char형

#include <stdio.h>
int main() {
    char code = 'A';
    printf("%d ", code);
    printf("%d ", code+1);
    printf("%d \n", code+2);
    printf("%c ", code);
    printf("%c ", code+1);
    printf("%c \n", code+2);
    return 0;
}

 

 

제어문자

  • 인쇄 목적이 아니라 제어 목적으로 사용되는 문자들
  • 예: 줄바꿈 문자, 탭 문자, 벨소리 문자, 백스페이스 문자
728x90
반응형

'개발중 > c' 카테고리의 다른 글

변수와 상수  (0) 2020.12.24
기본 입출력 함수  (0) 2020.12.19
C프로그램 과정과 이해  (0) 2020.12.19
프로그래밍 과정  (0) 2020.12.13