C언어 - 자료형, 상수, 변수

2022. 11. 3. 22:12C언어

728x90

이번에는 자료형에 대해 알아보도록 하겠습니다.

자료형은 정수형, 실수형, 문자형이 있고, 후에 배울 배열형, 포인터형, 열거형 등 여러 가지 자료형이 존재합니다.

먼저 정수형, 실수형, 문자형 자료형에 대해 알아보도록 하겠습니다.

  • 정수형
자료형 크기( byte ) 표현 범위
char 1 -128 ~ 127
short int 2 -32,768 ~ 32,767
int 4 -2,147,483,648 ~ 2,147,483,647
long int 4 -2,147,483,648 ~ 2,147,483,647
  • 실수형
자료형 크기( byte ) 표현 범위
float 4
-10^128 ~ 10^127
: 소수 6자리 표현
double 8
-10^128 ~ 10^127
: 소수 15자리 표현
  • 문자형
자료형 크기( byte ) 표현 범위
char 1 -128 ~ 127
unsigned char 1 0 ~ 255

우리가 자료형을 사용하는 이유는 메모리 공간을 낭비하지 않고, 효율적으로 사용하기 위함입니다. 그리고 데이터의 타입(type)을 알려주기 위해 사용합니다.


이번에는 상수와 변수에 대해 알아보도록 하겠습니다.

먼저, 상수와 변수의 차이를 보면

  • 상수 : 프로그램이 실행되고, 실행이 끝날 때까지 변하지 않는 고정된 값
  • 변수 : 프로그램이 실행되는 중에 변할 수 있는 값

이러한 차이점이 있습니다.

상수와 변수를 선언하는 방법을 알아보면,

  • 상수
#include <stdio.h>
#define TEST 10

int main(void){
    const float pi = 3.14;
    return 0;
}

위 코드를 보면 상수를 선언하는 방법은 총 2가지인 것을 알 수 있습니다.

1번째 : #define 를 이용하는 방법

2번째 : const 키워드를 이용하는 방법

이렇게 선언된 상수는 변경할 수 없는 고정값이 됩니다. (연산은 가능)

  • 변수
#include <stdio.h>

int main(void){
    float pi;
    pi = 3.14;
    return 0;
}

변수는 위 코드처럼 <자료형 변수이름;>와 같은 형식으로 선언하면 됩니다.

(* 참고 : 자료형 변수이름 = 변수값; 과 같이 선언과 동시에 초기화도 가능합니다. 초기화를 해주지 않으면 변수에는 쓰레기값이라고 하는 이상한 값이 저장됨)

  • 변수의 사용 가능 범위 ( 지역 변수와 전역 변수 )

변수는 선언 위치에 따라 사용할 수 있는 범위가 정해집니다.

  1. 지역 변수
  2. 전역 변수
#include <stdio.h>
int t = 10; // 전역변수 t -> 모든 함수에서 사용 가능

int main(void){
    int t = 20; // 지역변수 t -> main 함수에서만 사용 가능
    printf("t = %d\n", t); // 지역변수인 t를 출력 ( 20 )
    return 0;
}

* 주의할 점

변수에 값을 초기화할 때, 해당 변수가 표현할 수 범위 바깥의 값을 준다면 어떻게 될까요?

만약 최대값보다 큰 값을 준다면 오버플로(overflow)가 발생합니다.

  • overflow

ex) char

char의 경우, 표현 범위는 -128 ~ 127입니다. char형 변수에 128을 저장한다면 실제로 저장되는 값은 -128입니다. 이런 현상을 오버플로(overflow)라고 합니다.

  • underflow

오버플로와 반대의 현상입니다. char형 변수에 -129를 저장한다면 실제 저장되는 값은 127이 됩니다.

728x90

'C언어' 카테고리의 다른 글

C언어 - 연산자  (0) 2022.11.09
C언어 - printf, scanf  (0) 2022.11.03
C언어 - 프로그램의 기본 구조  (0) 2022.11.03