C언어 공부

C언어 기초 - 3. 자료형의 개념

Client Side 2025. 8. 13. 13:09

자료형, 데이터 타입

 

문장(문자열), 숫자(정수, 실수), 문자

정확하게는 문장형 데이터 타입은 존재하지 않는다. 문자열이 맞는 말인데 이 말은 문자들의 배열이라는 뜻이다.

문자형 데이터 타입은 따로 존재하지 않는다.

자료형마다 메모리 크기가 있다.

 

정수형 데이터 타입

  • char(character) - 1byte (8bit)      :     -128 ~ 127 (2의 8제곱을 음수 양수 대역폭으로 나눈것)
  • short - 2byte (16bit)      :   -32,768 ~ 32,767
  • int - 4byte (32bit)     :   -21억  ~   21억   
  • long long - 8byte ( 64bit)

각 데이터 타입의 대역폭 만큼만 출력 가능하다.

예외적으로 데이터 타입 앞에 unsigned를 붙이면 음수 대역폭을 사용하지 않고 그 수치만큼 양수 대역폭으로 늘어난다.

-> char는 127까지만 사용 가능하지만 앞에 unsigned를 붙이면 255까지 쓸 수 있다.

 

실수형 데이터 타입

float

double

 

 

10과 10.0은 우리 눈에는 같지만 컴퓨터 관점에서는 다른 자료다.

 

"Hello"

'H', 'e', 'l', 'l', 'o'

 

 

서식지정자

%d  -  char, short, int  : 부호 있는 10진 정수

%ld  - long                  : 부호 있는 10진 정수

%lld - long long          : 부호 있는 10진 정수

%u  - unsigned int      : 부호 없는 10진 정수

%o  - unsigned int      : 부호 없는 8진 정수

%x, %X - float, double : 부호 없는 16진 정수

%f  - float                    : 10진수 방식의 부동소수점 실수

%lf  - long double, double  : 10진수 방식의 부동소수점 실수

%c  - char, short, int      : 값에 대응하는 문자

%s  - char*(문자열)       : 문자열

%p  - void(주소값)        : 포인터 주소 

 

서식지정자에도 담을 수 있는 값의 범위가 있다.

 

#include <stdio.h>

int main(void)
{
    unsigned char c = 200;   
    printf("%d\n", c);    // 200

    unsigned int i = 2200000000;
    printf("%d\n", i);   //  -2094967296
    printf("%u\n", i);   //  2200000000
    return 0;
}