자료형의 종류

지환·2021년 12월 21일
0

C언어

목록 보기
2/37
post-thumbnail

자료형은 데이터를 표현하는 방법이다. C언어가 제공해주는 기본 자료형에 대하여 알아 보겠다. int, double, char 등 이와 같은 일부의 키워드를 자료형이라고 한다. 이러한 자료형들은 다음과 같이 2가지 정보를 담고 있다. 표현 또는 저장 하려는 데이터가 '정수' 인지 '실수' 인지에 따른 정보가 담겨 있다. 표현하려는 데이터의 크기가 몇 bytes 인지에 대한 정보가 담겨 있다.

ex) int 자료형 : '정수'를 표현 및 저장하고, 그 크기는 4 bytes
double 자료형 : '실수'를 표현 및 저장하고, 그 크기는 8 bytes

자료형이 왜 필요할까?

두루마리 휴지를 보면 일정한 간격으로 뜯을 수 있게 표시가 되어 있다. 그런데 그 표시만큼 뜯는 사람은 거의 없다. 보통은 자신이 필요한 만큼 한번에 3~4칸씩 뜯어서 사용한다. 컴퓨터도 메모리는 1바이트 단위로 주소가 부여돼 있다고 해서 데이터를 저장하거나 읽을 때 1바이트 단위로만 사용해야 하는 것은 아니다. 자신이 사용할 데이터의 크기에 맞게 할당해서 사용하면 된다. 그래서 메모리를 사용할 때 몇 바이트의 메모리를 사용할 것인지를 명시해야 되는데, 이것을 데이터타입(Data Type) 또는 자료형이라고 한다.

기본 자료형의 종류와 데이터의 표현범위

  • int a’는 'a'라는 변수에 10진 정수를 저장하기 위해 4byte의 메모리를 할당하라.’는 의미다. 따라서 저장되는 값은 10진수에서 2진수 형태로 변환되어 a에 저장된다.

  • int는 정수형 변수, float는 실수형 변수, char은 문자형 변수다. 자료형에 따라 저장될 수 있는 값의 종류와 범위가 결정되어 있다.

  • 예시: 우리가 char a;를 변수로 지정해 주었을경우 a안에는 오직 문자밖에 들어가지 못합니다. 그리고 컴퓨터는 그 문자를 숫자로 인식한다.

  • C언어에서는 총 8개의 기본 자료형을 제공한다. 다음은 기본 자료형의 종류와 데이터의 표현범위다.

  • 자료형 별 크기는 컴파일러(사람이 프로그래밍 언어로 작성한 것을 CPU가 이해 할 수 있도록 변환 해주는 것)에 따라서 약간의 차이를 보인다.

  • C언어의 표준에서는 자료형별 상대적 크기를 표준화 할 뿐 구체적인 크기까지 언급하지는 않겠다.

  • 자료형이 여러개가 있지만 그러한 자료형들이 크게 '정수형' 과 '실수형'으로 나누어진다.

  • 데이터를 표현하는 방식이 정수형과 실수형 두 가지로 나누어지기 때문이다.

  • 정수형에서도, 실수형에서도 둘 이상의 기본 자료형이 존재한다.

  • 표현하고자 하는 값의 크기에 따라서 적절히 선택할 수 있도록 다수의 자료형이 제공되기 때문이다.

서식지정자

  • 서식 지정자는 왜 사용할까? 사실 서식 지정자를 사용하든 "Hello, world!"를 바로 출력하든 결과에는 차이가 없다.
  • 하지만 서식 지정자는 변수를 사용하여 같은 내용을 여러 개 출력하거나, 출력 형태를 바꿀 때 유용하게 사용할 수 있다.
  • 이제 서식 지정자의 다양한 사용 방법을 알아보겠다.
    다음과 같이 %s를 두 번 사용했다면 각 %s에 들어갈 문자열을 , (콤마)로 구분하여 차례대로 넣어주면 된다.
                printf("%s %s\n", "Hello", "1234");
                       <실행결과>Hello 1234
  • 첫 번째 %s에 "Hello"가 들어가고 두 번째 %s에 "1234"가 들어가므로 "Hello 1234"가 출력된다.

  • 그럼 Hello에 , (콤마)까지 출력하려면 어떻게 해야 할까? 이때는 문자열 안에 콤마를 넣어주면 된다.

                  printf("%s %s\n", "Hello,", "1234");             
                       <실행결과>Hello, 1234
  • 다른 방법으로는 "%s, %s"와 같이 서식 지정자 부분에 콤마를 넣는 방법도 있다. 이때는 "Hello" 문자열 안에 콤마를 넣으면 안된다.
                 printf("%s, %s\n", "Hello", "1234");
                        <실행결과>Hello, 1234
  • 그럼 "%s%s"로는 "Hello 1234"를 어떻게 출력해야 할까? 방법은 간단하다.
  • "Hello "와 같이 출력할 문자열 안에 공백을 넣어주면 된다. 물론 " 1234"와 같이 두 번째 문자열에 공백을 넣어도 상관없다.
                printf("%s%s\n", "Hello ", "1234");    
                printf("%s%s\n", "Hello", " 1234");    
                      <실행결과>Hello 1234
                               Hello 1234

<출처 : DO IT C언어 - 김성엽>

profile
아는만큼보인다.

0개의 댓글